/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package specifications;

import com.jtattoo.plaf.acryl.AcrylLookAndFeel;
import java.io.File;
import java.io.IOException;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;

/**
 *
 * @author Jason
 */
public class Main extends javax.swing.JFrame {

    private Specifications specs;
    private boolean saved;
    private String location;
    private FileFilter ff;
    private NumberFormat priorityf;
    

    /**
     * Creates new form Main
     */
    public Main() {
        specs = new Specifications();
        ff = new FileNameExtensionFilter("Specifications File (*.yml)", "yml", "yaml", "ysp");
        priorityf = NumberFormat.getIntegerInstance();
        priorityf.setMaximumIntegerDigits(2);
        initComponents();
        saved = true;
    }

    public void addDirective(JList<Directive> list) {
        DirectivePanel dpane = new DirectivePanel();
        int created = JOptionPane.showConfirmDialog(null, dpane, "Add Directive", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
        if (created == JOptionPane.OK_OPTION && !dpane.getRequest().equals("")) {
            DefaultListModel<Directive> model = (DefaultListModel<Directive>) list.getModel();
            model.addElement(new Directive(dpane.getRequest(), dpane.getPriority()));
        } else {
            return;
        }
        updateSpecifications(false);
        saved = false;
    }

    public void editDirective(JList<Directive> list) {
        
        Directive sel = list.getSelectedValue();
        if (sel != null) {
            DirectivePanel dpane = new DirectivePanel();
            dpane.setRequest(sel.getRequest());
            dpane.setPriority(sel.getPriority());
            int created = JOptionPane.showConfirmDialog(null, dpane, "Edit Directive", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
            if (created == JOptionPane.OK_OPTION) {
                DefaultListModel<Directive> model = (DefaultListModel<Directive>) list.getModel();
                if (dpane.getRequest().equals("")) {
                    model.removeElement(sel);
                    return;
                }

                sel.setPriority(dpane.getPriority());
                sel.setRequest(dpane.getRequest());

            } else {
                //do nothing because cancel was clicked
                return;
            }
        } else {

            JOptionPane.showMessageDialog(this, "You must select a directive to edit.", "Warning", JOptionPane.OK_OPTION);
        }

        updateSpecifications(false);
        saved = false;
    }

    public void removeDirective(JList<Directive> list) {
        Directive sel = list.getSelectedValue();
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) list.getModel();
        model.removeElement(sel);
        updateSpecifications(false);
        saved = false;
    }

    public void saveSpecifications() {
        updateSpecifications(true);
        if (location == null) {
            JFileChooser fc = new JFileChooser(location);
            fc.addChoosableFileFilter(ff);
            fc.setFileFilter(ff);
            int selected = fc.showSaveDialog(this);
            if (selected == JFileChooser.APPROVE_OPTION) {
                File outfile = fc.getSelectedFile();
                location = outfile.getAbsolutePath();
            } else {
                return; //return without saving
            }
        }
        if (!location.endsWith(".yml") && !location.endsWith(".yaml") && !location.endsWith(".ysp")) {
            location = location + ".yml";
        }
        try {
            specs.dump(location);
            saved = true;
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(this, "Unable to save file!");
        }
    }

    public void loadSpecifications() {
        //check to see if current spec is saved
        if (saved) {
            //attempt to load specs
            JFileChooser fc = new JFileChooser(location);
            fc.addChoosableFileFilter(ff);
            fc.setFileFilter(ff);
            int selected = fc.showOpenDialog(this);
            if (selected == JFileChooser.APPROVE_OPTION) {
                File infile = fc.getSelectedFile();
                location = infile.getAbsolutePath();
                specs = new Specifications();
                try {
                    //load specs object from file
                    specs = specs.load(location);
                } catch (Exception ex) {
                    System.err.println(ex);
                    JOptionPane.showMessageDialog(this, "Unable to load file!");
                    return;
                }
            } else {
                return; //return without loading or checking anything more
            }

        } else {
            int tosave = JOptionPane.showConfirmDialog(this, "Save current specifications?");
            if (tosave == JOptionPane.YES_OPTION) {
                saveSpecifications();
                if (saved) {
                    //attempt to load specs
                    JFileChooser fc = new JFileChooser(location);
                    fc.addChoosableFileFilter(ff);
                    fc.setFileFilter(ff);
                    int selected = fc.showOpenDialog(this);
                    if (selected == JFileChooser.APPROVE_OPTION) {
                        File infile = fc.getSelectedFile();
                        location = infile.getAbsolutePath();
                        specs = new Specifications();
                        try {
                            //load specs object from file
                            specs = specs.load(location);
                        } catch (Exception ex) {
                            JOptionPane.showMessageDialog(this, "Unable to load file!");
                            return;
                        }
                    } else {
                        return; //return without loading or checking anything more
                    }
                }
            } else if (tosave == JOptionPane.NO_OPTION) {
                //attempt to load specs
                JFileChooser fc = new JFileChooser(location);
                fc.addChoosableFileFilter(ff);
                fc.setFileFilter(ff);
                int selected = fc.showOpenDialog(this);
                if (selected == JFileChooser.APPROVE_OPTION) {
                    File infile = fc.getSelectedFile();
                    location = infile.getAbsolutePath();
                    specs = new Specifications();
                    try {
                        //load specs object from file
                        specs = specs.load(location);
                    } catch (Exception ex) {
                        JOptionPane.showMessageDialog(this, "Unable to load file!");
                        return;
                    }
                } else {
                    return; //return without loading or checking anything more
                }
            } else {
                return; //return without loading or checking anything more
            }
        }
        //load parameters to screen from specs object
        loadTextualCharacteristics();
        loadSpecializedLanguage();
        loadVolume();
        loadComplexity();
        loadOrigin();

        loadTargetLanguage();
        loadAudience();
        loadPurpose();
        loadContentCorr();
        loadRegister();
        loadFileFormat();
        loadStyle();
        loadLayout();

        loadTypical();
        loadAdditional();

        loadTechnology();
        loadReferenceMaterials();
        loadWorkplace();

        loadPermissions();
        loadSubmissions();
        loadExpectations();

        //declare the specs saved because they came from a file
        saved = true;
    }

    public void updateSpecifications(boolean t) {
        //save all parameters to specs object
        updateTextualCharacteristics();
        updateSpecializedLanguage();
        updateVolume();
        updateComplexity();
        updateOrigin();

        updateTargetLanguage();
        updateAudience();
        updatePurpose();
        updateContentCorr();
        updateRegister();
        updateFileFormat();
        updateStyle();
        updateLayout();

        updateTypical();
        updateAdditional();

        updateTechnology();
        updateReferenceMaterials();
        updateWorkplace();

        updatePermissions();
        updateSubmissions();
        updateExpectations();

        if (t){
            assignPriorities();
        }

    }

    public void assignPriorities(){
                //Assign Priorities to Directives and Parameters
        specs.getParameter(Specifications.TEXTUAL_CHARACTERISTICS, Specifications.SOURCE).computeParameterPriority();
        specs.getParameter(Specifications.SPECIALIZED_LANGUAGE, Specifications.SOURCE).computeParameterPriority();
        specs.getParameter(Specifications.VOLUME, Specifications.SOURCE).computeParameterPriority();
        specs.getParameter(Specifications.COMPLEXITY, Specifications.SOURCE).computeParameterPriority();
        specs.getParameter(Specifications.ORIGIN, Specifications.SOURCE).computeParameterPriority();
        
        specs.getParameter(Specifications.TARGET_LANGUAGE, Specifications.TARGET).computeParameterPriority();
        specs.getParameter(Specifications.AUDIENCE, Specifications.TARGET).computeParameterPriority();
        specs.getParameter(Specifications.PURPOSE, Specifications.TARGET).computeParameterPriority();
        specs.getParameter(Specifications.CONTENT_CORRESPONDENCE, Specifications.TARGET).computeParameterPriority();
        specs.getParameter(Specifications.REGISTER, Specifications.TARGET).computeParameterPriority();
        specs.getParameter(Specifications.FILE_FORMAT, Specifications.TARGET).computeParameterPriority();
        specs.getParameter(Specifications.STYLE, Specifications.TARGET).computeParameterPriority();
        specs.getParameter(Specifications.LAYOUT, Specifications.TARGET).computeParameterPriority();
        
        specs.getParameter(Specifications.TYPICAL_TASKS, Specifications.PRODUCTION).computeParameterPriority();
        specs.getParameter(Specifications.ADDITIONAL_TASKS, Specifications.PRODUCTION).computeParameterPriority();
        
        specs.getParameter(Specifications.TECHNOLOGY, Specifications.ENVIRONMENT).computeParameterPriority();
        specs.getParameter(Specifications.REFERENCE_MATERIALS, Specifications.ENVIRONMENT).computeParameterPriority();
        specs.getParameter(Specifications.WORKPLACE_REQUIREMENTS, Specifications.ENVIRONMENT).computeParameterPriority();
        
        specs.getParameter(Specifications.PERMISSIONS, Specifications.RELATIONSHIPS).computeParameterPriority();
        specs.getParameter(Specifications.SUBMISSIONS, Specifications.RELATIONSHIPS).computeParameterPriority();
        specs.getParameter(Specifications.EXPECTATIONS, Specifications.RELATIONSHIPS).computeParameterPriority();
    }
    public void updateTextualCharacteristics() {
        saved = false;
        int langind = sourceLanguageList.getSelectedIndex();
        String lang;
        if (langind >= 0) {
            lang = picklists.getLanguageCodes().get(langind);
        } else {
            lang = "";
        }
        int regind = sourceRegionList.getSelectedIndex();
        String region;
        if (regind >= 0) {
            region = picklists.getRegionCodes().get(regind);
        } else {
            region = "";
        }
        String type = textTypeField.getText();
        String aud = sourceAudienceField.getText();
        String pur = sourcePurposeField.getText();
        TextualCharacteristics textchar = new TextualCharacteristics(lang, region, type, aud, pur);

        textchar.setStatus((String) textualCharacteristicsStatusList.getSelectedItem());
        try {
            int priority = ((Number) textualCharacteristicsPriority.getValue()).intValue();
            textchar.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(textchar, Specifications.TEXTUAL_CHARACTERISTICS, Specifications.SOURCE);
    }

    public void loadTextualCharacteristics() {
        TextualCharacteristics texchar = (TextualCharacteristics) specs.getParameter(Specifications.TEXTUAL_CHARACTERISTICS, Specifications.SOURCE);
        if (texchar == null) {
            return;
        }
        int langind = picklists.getLanguageCodes().indexOf(texchar.getLanguage());
        int regind = picklists.getRegionCodes().indexOf(texchar.getRegion());
        if (langind > 0) {
            sourceLanguageList.setSelectedItem(picklists.getLanguageNames().get(langind));
        }
        if (regind > 0) {
            sourceRegionList.setSelectedItem(picklists.getRegionNames().get(regind));
        }
        textTypeField.setText(texchar.getTextType());
        sourceAudienceField.setText(texchar.getAudience());
        sourcePurposeField.setText(texchar.getPurpose());
        textualCharacteristicsStatusList.setSelectedItem(texchar.getStatus());
        textualCharacteristicsPriority.setValue(texchar.getPriority());

    }

    public void updateSpecializedLanguage() {
        saved = false;
        SpecializedLanguage speclang = new SpecializedLanguage(subjectFieldField.getText(), sourceTerminologyField.getText());
        speclang.setStatus((String) specializedLanguageStatusList.getSelectedItem());
        try {
            int priority = ((Number) targetLanguagePriority.getValue()).intValue();
            speclang.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(speclang, Specifications.SPECIALIZED_LANGUAGE, Specifications.SOURCE);
    }

    public void loadSpecializedLanguage() {
        SpecializedLanguage speclang = (SpecializedLanguage) specs.getParameter(Specifications.SPECIALIZED_LANGUAGE, Specifications.SOURCE);
        if (speclang == null) {
            return;
        }
        subjectFieldField.setText(speclang.getSubjectField());
        sourceTerminologyField.setText(speclang.getTerminology());
        specializedLanguageStatusList.setSelectedItem(speclang.getStatus());
        specializedLanguagePriority.setValue(speclang.getPriority());
    }

    public void updateVolume() {
        saved = false;
        int am;
        try {
            am = ((Number) amount.getValue()).intValue();
        } catch (NullPointerException ex) {
            //set am to default of 0
            am = 0;
        }
        Volume volume = new Volume(new Count(am, unit.getText(), metric.getText()));
        volume.setStatus((String) volumeStatus.getSelectedItem());
        try {
            int priority = ((Number) volumePriority.getValue()).intValue();
            volume.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(volume, Specifications.VOLUME, Specifications.SOURCE);
    }

    public void loadVolume() {
        Volume volume = (Volume) specs.getParameter(Specifications.VOLUME, Specifications.SOURCE);
        if (volume == null) {
            return;
        }
        Count count = volume.getContent();
        amount.setValue(count.getAmount());
        unit.setText(count.getUnit());
        metric.setText(count.getMetric());
        volumeStatus.setSelectedItem(volume.getStatus());
        volumePriority.setValue(volume.getPriority());
    }

    public void updateComplexity() {
        saved = false;
        Complexity comp = new Complexity(complexityContent.getText());
        comp.setStatus((String) complexityStatus.getSelectedItem());
        try {
            int priority = ((Number) complexityPriority.getValue()).intValue();
            comp.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(comp, Specifications.COMPLEXITY, Specifications.SOURCE);
    }

    public void loadComplexity() {
        Complexity comp = (Complexity) specs.getParameter(Specifications.COMPLEXITY, Specifications.SOURCE);
        if (comp == null) {
            return;
        }
        complexityContent.setText(comp.getContent());
        complexityStatus.setSelectedItem(comp.getStatus());
        complexityPriority.setValue(comp.getPriority());
    }

    public void updateOrigin() {
        saved = false;
        Origin origin = new Origin(originContent.getText());
        origin.setStatus((String) originStatus.getSelectedItem());
        try {
            int priority = ((Number) originPriority.getValue()).intValue();
            origin.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(origin, Specifications.ORIGIN, Specifications.SOURCE);
    }

    public void loadOrigin() {
        Origin origin = (Origin) specs.getParameter(Specifications.ORIGIN, Specifications.SOURCE);
        if (origin == null) {
            return;
        }
        originContent.setText(origin.getContent());
        originStatus.setSelectedItem(origin.getStatus());
        originPriority.setValue(origin.getPriority());
    }

    public void updateTargetLanguage() {
        saved = false;
        int langind = targetLanguageList.getSelectedIndex();
        String lang;
        if (langind >= 0) {
            lang = picklists.getLanguageCodes().get(langind);
        } else {
            lang = "";
        }
        int regind = targetRegionList.getSelectedIndex();
        String region;
        if (regind >= 0) {
            region = picklists.getRegionCodes().get(regind);
        } else {
            region = "";
        }
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) targetTerminologyList.getModel();

        TargetLanguage targ = new TargetLanguage(lang, region, Collections.list(model.elements()));

        targ.setStatus((String) targetLanguageStatus.getSelectedItem());
        try {
            int priority = ((Number) targetLanguagePriority.getValue()).intValue();
            targ.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(targ, Specifications.TARGET_LANGUAGE, Specifications.TARGET);
    }

    public void loadTargetLanguage() {
        TargetLanguage targ = (TargetLanguage) specs.getParameter(Specifications.TARGET_LANGUAGE, Specifications.TARGET);
        if (targ == null) {
            return;
        }
        int langind = picklists.getLanguageCodes().indexOf(targ.getLanguage());
        int regind = picklists.getRegionCodes().indexOf(targ.getRegion());
        if (langind > 0) {
            targetLanguageList.setSelectedItem(picklists.getLanguageNames().get(langind));
        }
        if (regind > 0) {
            targetRegionList.setSelectedItem(picklists.getRegionNames().get(regind));
        }

        DefaultListModel<Directive> model = (DefaultListModel<Directive>) targetTerminologyList.getModel();
        model.clear();
        for (Directive d : targ.getTargetTerminology()) {
            model.addElement(d);
        }
        targetLanguageStatus.setSelectedItem(targ.getStatus());
        targetLanguagePriority.setValue(targ.getPriority());
    }

    public void updateAudience() {
        saved = false;
        Audience aud = new Audience(audienceContent.getText());
        aud.setStatus((String) audienceStatus.getSelectedItem());
        try {
            int priority = ((Number) audiencePriority.getValue()).intValue();
            aud.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(aud, Specifications.AUDIENCE, Specifications.TARGET);
    }

    public void loadAudience() {
        Audience aud = (Audience) specs.getParameter(Specifications.AUDIENCE, Specifications.TARGET);
        if (aud == null) {
            return;
        }
        audienceContent.setText(aud.getContent());
        audienceStatus.setSelectedItem(aud.getStatus());
        audiencePriority.setValue(aud.getPriority());
    }

    public void updatePurpose() {
        saved = false;
        Purpose purp = new Purpose(purposeContent.getText());
        purp.setStatus((String) purposeStatus.getSelectedItem());
        try {
            int priority = ((Number) purposePriority.getValue()).intValue();
            purp.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(purp, Specifications.PURPOSE, Specifications.TARGET);
    }

    public void loadPurpose() {
        Purpose purp = (Purpose) specs.getParameter(Specifications.PURPOSE, Specifications.TARGET);
        if (purp == null) {
            return;
        }
        purposeContent.setText(purp.getContent());
        purposeStatus.setSelectedItem(purp.getStatus());
        purposePriority.setValue(purp.getPriority());
    }

    public void updateContentCorr() {
        saved = false;
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) contentCorrespondence.getModel();
        ContentCorrespondence con = new ContentCorrespondence(Collections.list(model.elements()));
        con.setStatus((String) concorStatus.getSelectedItem());
        try {
            int priority = ((Number) concorPriority.getValue()).intValue();
            con.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(con, Specifications.CONTENT_CORRESPONDENCE, Specifications.TARGET);
    }

    public void loadContentCorr() {
        ContentCorrespondence con = (ContentCorrespondence) specs.getParameter(Specifications.CONTENT_CORRESPONDENCE, Specifications.TARGET);
        if (con == null) {
            return;
        }

        DefaultListModel<Directive> model = (DefaultListModel<Directive>) contentCorrespondence.getModel();
        model.clear();
        for (Directive d : con.getContent()) {
            model.addElement(d);
        }
        concorStatus.setSelectedItem(con.getStatus());
        concorPriority.setValue(con.getPriority());
    }

    public void updateRegister() {
        saved = false;
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) register.getModel();
        Register reg = new Register(Collections.list(model.elements()));
        reg.setStatus((String) registerStatus.getSelectedItem());
        try {
            int priority = ((Number) registerPriority.getValue()).intValue();
            reg.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(reg, Specifications.REGISTER, Specifications.TARGET);
    }

    public void loadRegister() {
        Register reg = (Register) specs.getParameter(Specifications.REGISTER, Specifications.TARGET);
        if (reg == null) {
            return;
        }

        DefaultListModel<Directive> model = (DefaultListModel<Directive>) register.getModel();
        model.clear();
        for (Directive d : reg.getContent()) {
            model.addElement(d);
        }
        registerStatus.setSelectedItem(reg.getStatus());
        registerPriority.setValue(reg.getPriority());
    }

    public void updateFileFormat() {
        saved = false;
        FileFormat fileFormat = new FileFormat(fileFormatContent.getText());
        fileFormat.setStatus((String) fileFormatStatus.getSelectedItem());
        try {
            int priority = ((Number) fileFormatPriority.getValue()).intValue();
            fileFormat.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(fileFormat, Specifications.FILE_FORMAT, Specifications.TARGET);
    }

    public void loadFileFormat() {
        FileFormat fileFormat = (FileFormat) specs.getParameter(Specifications.FILE_FORMAT, Specifications.TARGET);
        if (fileFormat == null) {
            return;
        }
        fileFormatContent.setText(fileFormat.getContent());
        fileFormatStatus.setSelectedItem(fileFormat.getStatus());
        fileFormatPriority.setValue(fileFormat.getPriority());

    }

    public void updateStyle() {
        saved = false;
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) styleRelList.getModel();
        Style sty = new Style(styleGuide.getText(), Collections.list(model.elements()));
        sty.setStatus((String) styleStatus.getSelectedItem());
        try {
            int priority = ((Number) stylePriority.getValue()).intValue();
            sty.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(sty, Specifications.STYLE, Specifications.TARGET);
    }

    public void loadStyle() {
        Style sty = (Style) specs.getParameter(Specifications.STYLE, Specifications.TARGET);
        if (sty == null) {
            return;
        }
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) styleRelList.getModel();
        model.clear();
        for (Directive d : sty.getStyleRelevance()) {
            model.addElement(d);
        }
        styleStatus.setSelectedItem(sty.getStatus());
        stylePriority.setValue(sty.getPriority());
    }

    public void updateLayout() {
        saved = false;
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) layoutList.getModel();
        Layout lay = new Layout(Collections.list(model.elements()));
        lay.setStatus((String) layoutStatus.getSelectedItem());
        try {
            int priority = ((Number) layoutPriority.getValue()).intValue();
            lay.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(lay, Specifications.LAYOUT, Specifications.TARGET);
    }

    public void loadLayout() {
        Layout lay = (Layout) specs.getParameter(Specifications.LAYOUT, Specifications.TARGET);
        if (lay == null) {
            return;
        }

        DefaultListModel<Directive> model = (DefaultListModel<Directive>) layoutList.getModel();
        model.clear();
        for (Directive d : lay.getContent()) {
            model.addElement(d);
        }
        layoutStatus.setSelectedItem(lay.getStatus());
        layoutPriority.setValue(lay.getPriority());
    }

    public void updateTypical() {
        saved = false;
        String ini = initialTranslation.getText();
        DefaultListModel<Directive> prepm = (DefaultListModel<Directive>) preparation.getModel();
        DefaultListModel<Directive> scm = (DefaultListModel<Directive>) selfChecking.getModel();
        DefaultListModel<Directive> revm = (DefaultListModel<Directive>) revision.getModel();
        DefaultListModel<Directive> viewm = (DefaultListModel<Directive>) review.getModel();
        DefaultListModel<Directive> finalfm = (DefaultListModel<Directive>) finalFormatting.getModel();
        DefaultListModel<Directive> proofm = (DefaultListModel<Directive>) proofreading.getModel();
        LinkedHashMap<String, ArrayList<Directive>> qa = new LinkedHashMap<String, ArrayList<Directive>>(5);
        qa.put(TypicalTasks.SELF_CHECKING, Collections.list(scm.elements()));
        qa.put(TypicalTasks.REVISION, Collections.list(revm.elements()));
        qa.put(TypicalTasks.REVIEW, Collections.list(viewm.elements()));
        qa.put(TypicalTasks.FINAL_FORMATTING, Collections.list(finalfm.elements()));
        qa.put(TypicalTasks.PROOFREADING, Collections.list(proofm.elements()));

        TypicalTasks typ = new TypicalTasks(Collections.list(prepm.elements()), ini, qa);
        typ.setStatus((String) typicalStatus.getSelectedItem());
        try {
            int priority = ((Number) typicalPriority.getValue()).intValue();
            typ.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(typ, Specifications.TYPICAL_TASKS, Specifications.PRODUCTION);
    }

    public void loadTypical() {
        TypicalTasks typ = (TypicalTasks) specs.getParameter(Specifications.TYPICAL_TASKS, Specifications.PRODUCTION);
        if (typ == null) {
            return;
        }

        DefaultListModel<Directive> prepm = (DefaultListModel<Directive>) preparation.getModel();
        DefaultListModel<Directive> scm = (DefaultListModel<Directive>) selfChecking.getModel();
        DefaultListModel<Directive> revm = (DefaultListModel<Directive>) revision.getModel();
        DefaultListModel<Directive> viewm = (DefaultListModel<Directive>) review.getModel();
        DefaultListModel<Directive> finalfm = (DefaultListModel<Directive>) finalFormatting.getModel();
        DefaultListModel<Directive> proofm = (DefaultListModel<Directive>) proofreading.getModel();
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) contentCorrespondence.getModel();
        prepm.clear();
        for (Directive d : typ.getPreparation()) {
            prepm.addElement(d);
        }
        scm.clear();
        for (Directive d : typ.getQa().get(TypicalTasks.SELF_CHECKING)) {
            scm.addElement(d);
        }
        revm.clear();
        for (Directive d : typ.getQa().get(TypicalTasks.REVISION)) {
            revm.addElement(d);
        }
        viewm.clear();
        for (Directive d : typ.getQa().get(TypicalTasks.REVIEW)) {
            viewm.addElement(d);
        }
        finalfm.clear();
        for (Directive d : typ.getQa().get(TypicalTasks.FINAL_FORMATTING)) {
            finalfm.addElement(d);
        }
        proofm.clear();
        for (Directive d : typ.getQa().get(TypicalTasks.PROOFREADING)) {
            proofm.addElement(d);
        }
        initialTranslation.setText(typ.getInitialTranslation());
        typicalStatus.setSelectedItem(typ.getStatus());
        typicalPriority.setValue(typ.getPriority());
    }

    public void updateAdditional() {
        saved = false;
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) additional.getModel();
        AdditionalTasks addi = new AdditionalTasks(Collections.list(model.elements()));
        addi.setStatus((String) additionalStatus.getSelectedItem());
        try {
            int priority = ((Number) additionalPriority.getValue()).intValue();
            addi.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(addi, Specifications.ADDITIONAL_TASKS, Specifications.PRODUCTION);
    }

    public void loadAdditional() {
        AdditionalTasks addi = (AdditionalTasks) specs.getParameter(Specifications.ADDITIONAL_TASKS, Specifications.PRODUCTION);
        if (addi == null) {
            return;
        }

        DefaultListModel<Directive> model = (DefaultListModel<Directive>) additional.getModel();
        model.clear();
        for (Directive d : addi.getContent()) {
            model.addElement(d);
        }
        additionalStatus.setSelectedItem(addi.getStatus());
        additionalPriority.setValue(addi.getPriority());
    }

    public void updateTechnology() {
        saved = false;
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) technology.getModel();
        Technology tech = new Technology(Collections.list(model.elements()));
        tech.setStatus((String) technologyStatus.getSelectedItem());
        try {
            int priority = ((Number) technologyPriority.getValue()).intValue();
            tech.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(tech, Specifications.TECHNOLOGY, Specifications.ENVIRONMENT);
    }

    public void loadTechnology() {
        Technology tech = (Technology) specs.getParameter(Specifications.TECHNOLOGY, Specifications.ENVIRONMENT);
        if (tech == null) {
            return;
        }
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) technology.getModel();
        model.clear();
        for (Directive d : tech.getContent()) {
            model.addElement(d);
        }
        technologyStatus.setSelectedItem(tech.getStatus());
        technologyPriority.setValue(tech.getPriority());
    }

    public void updateReferenceMaterials() {
        saved = false;
        ArrayList<String> dummy = new ArrayList<String>(1);
        dummy.add(referenceMaterials.getText());
        ReferenceMaterials ref = new ReferenceMaterials(dummy);
        ref.setStatus((String) refStatus.getSelectedItem());
        try {
            int priority = ((Number) refPriority.getValue()).intValue();
            ref.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(ref, Specifications.REFERENCE_MATERIALS, Specifications.ENVIRONMENT);
    }

    public void loadReferenceMaterials() {
        ReferenceMaterials ref = (ReferenceMaterials) specs.getParameter(Specifications.REFERENCE_MATERIALS, Specifications.ENVIRONMENT);
        if (ref == null) {
            return;
        }
        String all = "";
        for (String s : ref.getContent()) {
            all += s + "\n";
        }
        referenceMaterials.setText(all);
        refStatus.setSelectedItem(ref.getStatus());
        refPriority.setValue(ref.getPriority());
    }

    public void updateWorkplace() {
        saved = false;
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) workplace.getModel();
        WorkplaceRequirements work = new WorkplaceRequirements(Collections.list(model.elements()));
        work.setStatus((String) workStatus.getSelectedItem());
        try {
            int priority = ((Number) workPriority.getValue()).intValue();
            work.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(work, Specifications.WORKPLACE_REQUIREMENTS, Specifications.ENVIRONMENT);
    }

    public void loadWorkplace() {
        WorkplaceRequirements work = (WorkplaceRequirements) specs.getParameter(Specifications.WORKPLACE_REQUIREMENTS, Specifications.ENVIRONMENT);
        if (work == null) {
            return;
        }
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) workplace.getModel();
        model.clear();
        for (Directive d : work.getContent()) {
            model.addElement(d);
        }
        workStatus.setSelectedItem(work.getStatus());
        workPriority.setValue(work.getPriority());
    }

    public void updatePermissions(){
        saved = false;
        String copy = copyright.getText();
        String reco = recognition.getText();
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) restrictions.getModel();
        Permissions perm = new Permissions(copy, reco, Collections.list(model.elements()));
        perm.setStatus((String) permissionsStatus.getSelectedItem());
        try {
            int priority = ((Number) permissionsPriority.getValue()).intValue();
            perm.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(perm, Specifications.PERMISSIONS, Specifications.RELATIONSHIPS);
    }
    
    public void loadPermissions(){
        Permissions perm = (Permissions) specs.getParameter(Specifications.PERMISSIONS, Specifications.RELATIONSHIPS);
        if (perm == null) {
            return;
        }
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) restrictions.getModel();
        model.clear();
        for (Directive d : perm.getRestrictions()) {
            model.addElement(d);
        }
        copyright.setText(perm.getCopyright());
        recognition.setText(perm.getRecognition());
        permissionsStatus.setSelectedItem(perm.getStatus());
        permissionsPriority.setValue(perm.getPriority());
    }
    
    public void updateSubmissions(){
        saved = false;
        Date dead = (Date)deadline.getValue();
        DefaultListModel<Directive> qmodel = (DefaultListModel<Directive>) qualifications.getModel();
        DefaultListModel<Directive> amodel = (DefaultListModel<Directive>) deliverables.getModel();
        DefaultListModel<Directive> dmodel = (DefaultListModel<Directive>) delivery.getModel();
        Submissions sub = new Submissions(Collections.list(qmodel.elements()), Collections.list(amodel.elements()), Collections.list(dmodel.elements()), dead);
        sub.setStatus((String) submissionsStatus.getSelectedItem());
        try {
            int priority = ((Number) submissionsPriority.getValue()).intValue();
            sub.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(sub, Specifications.SUBMISSIONS, Specifications.RELATIONSHIPS);
    }
    
    public void loadSubmissions(){
        Submissions sub  = (Submissions) specs.getParameter(Specifications.SUBMISSIONS, Specifications.RELATIONSHIPS);
        if (sub == null) {
            return;
        }
        DefaultListModel<Directive> qmodel = (DefaultListModel<Directive>) qualifications.getModel();
        DefaultListModel<Directive> amodel = (DefaultListModel<Directive>) deliverables.getModel();
        DefaultListModel<Directive> dmodel = (DefaultListModel<Directive>) delivery.getModel();
        qmodel.clear();
        for (Directive d : sub.getQualifications()) {
            qmodel.addElement(d);
        }
        amodel.clear();
        for (Directive d : sub.getDeliverables()) {
            amodel.addElement(d);
        }
        dmodel.clear();
        for (Directive d : sub.getDelivery()) {
            dmodel.addElement(d);
        }
        deadline.setValue(sub.getDeadline());
        submissionsStatus.setSelectedItem(sub.getStatus());
        submissionsPriority.setValue(sub.getPriority());
    }
    
    public void updateExpectations(){
        saved = false;
        String compen = compensation.getText();
        Contact cont = new Contact(conName.getText(), conOrg.getText(), compensation.getText());
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) instructions.getModel();
        Expectations exp = new Expectations(compen, new Communication(cont, Collections.list(model.elements())));
        exp.setStatus((String) expectationsStatus.getSelectedItem());
        try {
            int priority = ((Number) expectationsPriority.getValue()).intValue();
            exp.setPriority(priority);
        } catch (NullPointerException ex) {
            //ignore and don't assign a new priority
        }
        specs.setParameter(exp, Specifications.EXPECTATIONS, Specifications.RELATIONSHIPS);
    }
    
    public void loadExpectations(){
        Expectations exp = (Expectations) specs.getParameter(Specifications.EXPECTATIONS, Specifications.RELATIONSHIPS);
        if (exp == null) {
            return;
        }
        DefaultListModel<Directive> model = (DefaultListModel<Directive>) instructions.getModel();
        model.clear();
        Communication comm = exp.getCommunication();
        for (Directive d : comm.getInstructions()) {
            model.addElement(d);
        }
        compensation.setText(exp.getCompensation());
        conName.setText(comm.getContact().getName());
        conOrg.setText((comm.getContact().getOrganization()));
        conAddress.setText(comm.getContact().getAddress());
        expectationsStatus.setSelectedItem(exp.getStatus());
        expectationsPriority.setValue(exp.getPriority());
    }
    
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {
        bindingGroup = new org.jdesktop.beansbinding.BindingGroup();

        picklists = new specifications.Picklists();
        tabs = new javax.swing.JTabbedPane();
        sourceTab = new javax.swing.JScrollPane();
        sourcePane = new javax.swing.JPanel();
        textualCharacteristicsLabel = new javax.swing.JLabel();
        sourceLanguageLabel = new javax.swing.JLabel();
        sourceRegionLable = new javax.swing.JLabel();
        textTypeLabel = new javax.swing.JLabel();
        textTypeField = new javax.swing.JTextField();
        sourceAudienceField = new javax.swing.JTextField();
        sourceAudienceLabel = new javax.swing.JLabel();
        sourcePurposeField = new javax.swing.JTextField();
        sourcePurposeLabel = new javax.swing.JLabel();
        textualCharacteristicsPriorityLabel = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        sourceLanguageList = new javax.swing.JComboBox();
        sourceRegionList = new javax.swing.JComboBox();
        textualCharacteristicsStatusList = new javax.swing.JComboBox();
        textualCharacteristicsLabel1 = new javax.swing.JLabel();
        specializedLanguagePriorityLabel = new javax.swing.JLabel();
        specializedLanguageStatusLabel = new javax.swing.JLabel();
        specializedLanguageStatusList = new javax.swing.JComboBox();
        textTypeLabel1 = new javax.swing.JLabel();
        subjectFieldField = new javax.swing.JTextField();
        sourceAudienceLabel1 = new javax.swing.JLabel();
        sourceTerminologyField = new javax.swing.JTextField();
        textualCharacteristicsLabel2 = new javax.swing.JLabel();
        volumeStatus = new javax.swing.JComboBox();
        jLabel2 = new javax.swing.JLabel();
        textualCharacteristicsPriorityLabel1 = new javax.swing.JLabel();
        metric = new javax.swing.JTextField();
        unit = new javax.swing.JTextField();
        textTypeLabel2 = new javax.swing.JLabel();
        sourceAudienceLabel2 = new javax.swing.JLabel();
        sourcePurposeLabel1 = new javax.swing.JLabel();
        NumberFormat amountFormat = NumberFormat.getIntegerInstance();
        amountFormat.setMaximumIntegerDigits(10);
        amount = new javax.swing.JFormattedTextField(amountFormat);
        textualCharacteristicsLabel3 = new javax.swing.JLabel();
        complexityStatus = new javax.swing.JComboBox();
        jLabel3 = new javax.swing.JLabel();
        textualCharacteristicsPriorityLabel2 = new javax.swing.JLabel();
        originStatus = new javax.swing.JComboBox();
        jLabel4 = new javax.swing.JLabel();
        textualCharacteristicsPriorityLabel3 = new javax.swing.JLabel();
        textualCharacteristicsLabel4 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        originContent = new javax.swing.JTextArea();
        jScrollPane2 = new javax.swing.JScrollPane();
        complexityContent = new javax.swing.JTextArea();
        textualCharacteristicsPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        volumePriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        complexityPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        originPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        specializedLanguagePriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        targetTab = new javax.swing.JScrollPane();
        targetPane = new javax.swing.JPanel();
        textualCharacteristicsLabel5 = new javax.swing.JLabel();
        sourceLanguageLabel1 = new javax.swing.JLabel();
        targetLanguageList = new javax.swing.JComboBox();
        targetRegionList = new javax.swing.JComboBox();
        sourceRegionLable1 = new javax.swing.JLabel();
        textualCharacteristicsPriorityLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        targetLanguageStatus = new javax.swing.JComboBox();
        jLabel6 = new javax.swing.JLabel();
        targetTerminologyAdd = new javax.swing.JButton();
        targetTerminologyEdit = new javax.swing.JButton();
        targetTerminologyRemove = new javax.swing.JButton();
        jScrollPane4 = new javax.swing.JScrollPane();
        targetTerminologyList = new javax.swing.JList(Directives.targetTerminology);
        targetLanguagePriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        audienceStatus = new javax.swing.JComboBox();
        jLabel7 = new javax.swing.JLabel();
        audiencePriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        textualCharacteristicsPriorityLabel5 = new javax.swing.JLabel();
        jScrollPane3 = new javax.swing.JScrollPane();
        audienceContent = new javax.swing.JTextArea();
        textualCharacteristicsLabel7 = new javax.swing.JLabel();
        purposeStatus = new javax.swing.JComboBox();
        jLabel8 = new javax.swing.JLabel();
        purposePriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        textualCharacteristicsPriorityLabel6 = new javax.swing.JLabel();
        jScrollPane5 = new javax.swing.JScrollPane();
        purposeContent = new javax.swing.JTextArea();
        textualCharacteristicsLabel8 = new javax.swing.JLabel();
        textualCharacteristicsLabel9 = new javax.swing.JLabel();
        concorAdd = new javax.swing.JButton();
        concorEdit = new javax.swing.JButton();
        concorRemove = new javax.swing.JButton();
        jScrollPane6 = new javax.swing.JScrollPane();
        contentCorrespondence = new javax.swing.JList(Directives.contentCorrespondence);
        textualCharacteristicsPriorityLabel7 = new javax.swing.JLabel();
        concorPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        jLabel9 = new javax.swing.JLabel();
        concorStatus = new javax.swing.JComboBox();
        registerStatus = new javax.swing.JComboBox();
        jLabel10 = new javax.swing.JLabel();
        registerPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        jScrollPane7 = new javax.swing.JScrollPane();
        register = new javax.swing.JList(Directives.register);
        registerRemove = new javax.swing.JButton();
        registerEdit = new javax.swing.JButton();
        registerAdd = new javax.swing.JButton();
        textualCharacteristicsLabel10 = new javax.swing.JLabel();
        fileFormatStatus = new javax.swing.JComboBox();
        jLabel11 = new javax.swing.JLabel();
        fileFormatPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        textualCharacteristicsPriorityLabel9 = new javax.swing.JLabel();
        textualCharacteristicsLabel11 = new javax.swing.JLabel();
        jScrollPane9 = new javax.swing.JScrollPane();
        fileFormatContent = new javax.swing.JTextPane();
        textualCharacteristicsLabel6 = new javax.swing.JLabel();
        textTypeLabel3 = new javax.swing.JLabel();
        styleGuide = new javax.swing.JTextField();
        jScrollPane8 = new javax.swing.JScrollPane();
        styleRelList = new javax.swing.JList(Directives.styleRelevance);
        styleStatus = new javax.swing.JComboBox();
        jLabel12 = new javax.swing.JLabel();
        stylePriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        textualCharacteristicsPriorityLabel10 = new javax.swing.JLabel();
        styleRelRemove = new javax.swing.JButton();
        styleRelEdit = new javax.swing.JButton();
        styleRelAdd = new javax.swing.JButton();
        jLabel13 = new javax.swing.JLabel();
        jScrollPane10 = new javax.swing.JScrollPane();
        layoutList = new javax.swing.JList(Directives.layout);
        layoutStatus = new javax.swing.JComboBox();
        jLabel14 = new javax.swing.JLabel();
        layoutPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        textualCharacteristicsPriorityLabel11 = new javax.swing.JLabel();
        layoutAdd = new javax.swing.JButton();
        layoutEdit = new javax.swing.JButton();
        layoutRemove = new javax.swing.JButton();
        textualCharacteristicsLabel12 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        productionTab = new javax.swing.JScrollPane();
        productionPane = new javax.swing.JPanel();
        typicalStatus = new javax.swing.JComboBox();
        jLabel16 = new javax.swing.JLabel();
        typicalPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        textualCharacteristicsPriorityLabel8 = new javax.swing.JLabel();
        jScrollPane11 = new javax.swing.JScrollPane();
        preparation = new javax.swing.JList(Directives.preparation);
        preparationAdd = new javax.swing.JButton();
        preparationEdit = new javax.swing.JButton();
        preparationRemove = new javax.swing.JButton();
        textualCharacteristicsLabel13 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        initialTranslation = new javax.swing.JTextField();
        jScrollPane12 = new javax.swing.JScrollPane();
        selfChecking = new javax.swing.JList(Directives.selfChecking);
        scAdd = new javax.swing.JButton();
        scEdit = new javax.swing.JButton();
        scRemove = new javax.swing.JButton();
        jLabel19 = new javax.swing.JLabel();
        jScrollPane13 = new javax.swing.JScrollPane();
        revision = new javax.swing.JList(Directives.revision);
        revisionRemove = new javax.swing.JButton();
        revisionEdit = new javax.swing.JButton();
        revisionAdd = new javax.swing.JButton();
        jLabel20 = new javax.swing.JLabel();
        jScrollPane14 = new javax.swing.JScrollPane();
        review = new javax.swing.JList(Directives.review);
        reviewRemove = new javax.swing.JButton();
        reviewEdit = new javax.swing.JButton();
        reviewAdd = new javax.swing.JButton();
        jLabel21 = new javax.swing.JLabel();
        jScrollPane15 = new javax.swing.JScrollPane();
        finalFormatting = new javax.swing.JList(Directives.finalFormatting);
        finalFomattingAdd = new javax.swing.JButton();
        finalFormattingEdit = new javax.swing.JButton();
        finalFormattingRemove = new javax.swing.JButton();
        jLabel22 = new javax.swing.JLabel();
        jScrollPane16 = new javax.swing.JScrollPane();
        proofreading = new javax.swing.JList(Directives.proofreading);
        proofAdd = new javax.swing.JButton();
        proofEdit = new javax.swing.JButton();
        proofRemove = new javax.swing.JButton();
        jLabel23 = new javax.swing.JLabel();
        textualCharacteristicsLabel14 = new javax.swing.JLabel();
        jScrollPane17 = new javax.swing.JScrollPane();
        additional = new javax.swing.JList(Directives.additional);
        additionalRemove = new javax.swing.JButton();
        additionalEdit = new javax.swing.JButton();
        additionalAdd = new javax.swing.JButton();
        additionalStatus = new javax.swing.JComboBox();
        jLabel24 = new javax.swing.JLabel();
        additionalPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        textualCharacteristicsPriorityLabel12 = new javax.swing.JLabel();
        environmentTab = new javax.swing.JScrollPane();
        environmentPane = new javax.swing.JPanel();
        jScrollPane18 = new javax.swing.JScrollPane();
        technology = new javax.swing.JList(Directives.technology);
        textualCharacteristicsPriorityLabel13 = new javax.swing.JLabel();
        technologyPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        jLabel25 = new javax.swing.JLabel();
        technologyStatus = new javax.swing.JComboBox();
        technologyRemove = new javax.swing.JButton();
        technologyEdit = new javax.swing.JButton();
        technologyAdd = new javax.swing.JButton();
        textualCharacteristicsLabel15 = new javax.swing.JLabel();
        jScrollPane19 = new javax.swing.JScrollPane();
        referenceMaterials = new javax.swing.JTextArea();
        refStatus = new javax.swing.JComboBox();
        jLabel26 = new javax.swing.JLabel();
        refPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        textualCharacteristicsPriorityLabel14 = new javax.swing.JLabel();
        textualCharacteristicsLabel16 = new javax.swing.JLabel();
        textualCharacteristicsLabel17 = new javax.swing.JLabel();
        jScrollPane21 = new javax.swing.JScrollPane();
        workplace = new javax.swing.JList(Directives.workplace);
        workRemove = new javax.swing.JButton();
        workEdit = new javax.swing.JButton();
        workAdd = new javax.swing.JButton();
        workStatus = new javax.swing.JComboBox();
        jLabel28 = new javax.swing.JLabel();
        workPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        textualCharacteristicsPriorityLabel16 = new javax.swing.JLabel();
        relationshipsTab = new javax.swing.JScrollPane();
        relationshipsPane = new javax.swing.JPanel();
        textualCharacteristicsLabel18 = new javax.swing.JLabel();
        jLabel32 = new javax.swing.JLabel();
        jScrollPane20 = new javax.swing.JScrollPane();
        copyright = new javax.swing.JTextArea();
        jLabel29 = new javax.swing.JLabel();
        jScrollPane22 = new javax.swing.JScrollPane();
        recognition = new javax.swing.JTextArea();
        restrictionsAdd = new javax.swing.JButton();
        restrictionsEdit = new javax.swing.JButton();
        restrictionsRemove = new javax.swing.JButton();
        jLabel30 = new javax.swing.JLabel();
        jScrollPane23 = new javax.swing.JScrollPane();
        restrictions = new javax.swing.JList(Directives.restrictions);
        textualCharacteristicsPriorityLabel15 = new javax.swing.JLabel();
        permissionsPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        jLabel31 = new javax.swing.JLabel();
        permissionsStatus = new javax.swing.JComboBox();
        submissionsStatus = new javax.swing.JComboBox();
        jLabel43 = new javax.swing.JLabel();
        submissionsPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        textualCharacteristicsPriorityLabel18 = new javax.swing.JLabel();
        jScrollPane27 = new javax.swing.JScrollPane();
        delivery = new javax.swing.JList(Directives.delivery);
        jLabel36 = new javax.swing.JLabel();
        delAdd = new javax.swing.JButton();
        delEdit = new javax.swing.JButton();
        delRemove = new javax.swing.JButton();
        jScrollPane26 = new javax.swing.JScrollPane();
        deliverables = new javax.swing.JList(Directives.deliverables);
        ablesAdd = new javax.swing.JButton();
        ablesRemove = new javax.swing.JButton();
        ablesEdit = new javax.swing.JButton();
        jLabel35 = new javax.swing.JLabel();
        jScrollPane24 = new javax.swing.JScrollPane();
        qualifications = new javax.swing.JList(Directives.qualifications);
        qualAdd = new javax.swing.JButton();
        qualEdit = new javax.swing.JButton();
        qualRemove = new javax.swing.JButton();
        jLabel33 = new javax.swing.JLabel();
        jLabel27 = new javax.swing.JLabel();
        deadline = new javax.swing.JFormattedTextField(new Date());
        textualCharacteristicsLabel19 = new javax.swing.JLabel();
        instructEdit = new javax.swing.JButton();
        jLabel42 = new javax.swing.JLabel();
        jLabel34 = new javax.swing.JLabel();
        jLabel40 = new javax.swing.JLabel();
        conOrg = new javax.swing.JTextField();
        jLabel38 = new javax.swing.JLabel();
        jScrollPane28 = new javax.swing.JScrollPane();
        instructions = new javax.swing.JList(Directives.instructions);
        jLabel37 = new javax.swing.JLabel();
        jLabel41 = new javax.swing.JLabel();
        jLabel39 = new javax.swing.JLabel();
        jScrollPane25 = new javax.swing.JScrollPane();
        conAddress = new javax.swing.JTextArea();
        instructAdd = new javax.swing.JButton();
        expectationsStatus = new javax.swing.JComboBox();
        textualCharacteristicsLabel20 = new javax.swing.JLabel();
        compensation = new javax.swing.JTextField();
        textualCharacteristicsPriorityLabel17 = new javax.swing.JLabel();
        conName = new javax.swing.JTextField();
        instructRemove = new javax.swing.JButton();
        expectationsPriority = new javax.swing.JSpinner(new SpinnerNumberModel(0,0,99,1));
        menu = new javax.swing.JMenuBar();
        file = new javax.swing.JMenu();
        save = new javax.swing.JMenuItem();
        saveAs = new javax.swing.JMenuItem();
        load = new javax.swing.JMenuItem();
        exit = new javax.swing.JMenuItem();
        help = new javax.swing.JMenu();
        specsHelp = new javax.swing.JMenuItem();
        rubricHelp = new javax.swing.JMenuItem();
        about = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Specifications Writer");
        setLocationByPlatform(true);
        setResizable(false);

        tabs.setAutoscrolls(true);
        tabs.setOpaque(true);
        tabs.setPreferredSize(new java.awt.Dimension(500, 500));

        sourceTab.setAutoscrolls(true);

        sourcePane.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        textualCharacteristicsLabel.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel.setText("Textual Characteristics");
        sourcePane.add(textualCharacteristicsLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 11, -1, 22));

        sourceLanguageLabel.setText("Language");
        sourceLanguageLabel.setMaximumSize(new java.awt.Dimension(60, 20));
        sourceLanguageLabel.setMinimumSize(new java.awt.Dimension(60, 20));
        sourceLanguageLabel.setPreferredSize(new java.awt.Dimension(60, 20));
        sourcePane.add(sourceLanguageLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 39, -1, -1));

        sourceRegionLable.setText("Region");
        sourcePane.add(sourceRegionLable, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 66, 60, 18));

        textTypeLabel.setText("Text Type");
        sourcePane.add(textTypeLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 92, 60, 19));

        textTypeField.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                textTypeFieldKeyTyped(evt);
            }
        });
        sourcePane.add(textTypeField, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 91, 274, -1));

        sourceAudienceField.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                sourceAudienceFieldKeyTyped(evt);
            }
        });
        sourcePane.add(sourceAudienceField, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 117, 274, -1));

        sourceAudienceLabel.setText("Audience");
        sourcePane.add(sourceAudienceLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 118, 60, 19));

        sourcePurposeField.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                sourcePurposeFieldKeyTyped(evt);
            }
        });
        sourcePane.add(sourcePurposeField, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 143, 274, -1));

        sourcePurposeLabel.setText("Purpose");
        sourcePane.add(sourcePurposeLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 146, 60, -1));

        textualCharacteristicsPriorityLabel.setText("Priority");
        sourcePane.add(textualCharacteristicsPriorityLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 171, 42, 17));

        jLabel1.setText("Status");
        sourcePane.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(175, 169, 35, 20));

        org.jdesktop.beansbinding.ELProperty eLProperty = org.jdesktop.beansbinding.ELProperty.create("${languageNames}");
        org.jdesktop.swingbinding.JComboBoxBinding jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, sourceLanguageList);
        bindingGroup.addBinding(jComboBoxBinding);

        sourceLanguageList.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                sourceLanguageListActionPerformed(evt);
            }
        });
        sourcePane.add(sourceLanguageList, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 39, 173, -1));

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${regionNames}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, sourceRegionList);
        bindingGroup.addBinding(jComboBoxBinding);

        sourceRegionList.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                sourceRegionListActionPerformed(evt);
            }
        });
        sourcePane.add(sourceRegionList, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 65, 173, -1));

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, textualCharacteristicsStatusList);
        bindingGroup.addBinding(jComboBoxBinding);

        textualCharacteristicsStatusList.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                textualCharacteristicsStatusListActionPerformed(evt);
            }
        });
        sourcePane.add(textualCharacteristicsStatusList, new org.netbeans.lib.awtextra.AbsoluteConstraints(214, 169, 150, -1));

        textualCharacteristicsLabel1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel1.setText("Specialized Language");
        sourcePane.add(textualCharacteristicsLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 222, -1, 22));

        specializedLanguagePriorityLabel.setText("Priority");
        sourcePane.add(specializedLanguagePriorityLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(95, 313, -1, -1));

        specializedLanguageStatusLabel.setText("Status");
        sourcePane.add(specializedLanguageStatusLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(174, 310, 35, 20));

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, specializedLanguageStatusList);
        bindingGroup.addBinding(jComboBoxBinding);

        specializedLanguageStatusList.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                specializedLanguageStatusListActionPerformed(evt);
            }
        });
        sourcePane.add(specializedLanguageStatusList, new org.netbeans.lib.awtextra.AbsoluteConstraints(213, 310, 151, -1));

        textTypeLabel1.setText("Subject Field");
        sourcePane.add(textTypeLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 250, -1, 24));

        subjectFieldField.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                subjectFieldFieldKeyTyped(evt);
            }
        });
        sourcePane.add(subjectFieldField, new org.netbeans.lib.awtextra.AbsoluteConstraints(95, 252, 269, -1));

        sourceAudienceLabel1.setText("Terminology");
        sourcePane.add(sourceAudienceLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 280, 69, 24));

        sourceTerminologyField.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                sourceTerminologyFieldKeyTyped(evt);
            }
        });
        sourcePane.add(sourceTerminologyField, new org.netbeans.lib.awtextra.AbsoluteConstraints(95, 282, 269, -1));

        textualCharacteristicsLabel2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel2.setText("Volume");
        sourcePane.add(textualCharacteristicsLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 341, -1, 22));

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, volumeStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        volumeStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                volumeStatusActionPerformed(evt);
            }
        });
        sourcePane.add(volumeStatus, new org.netbeans.lib.awtextra.AbsoluteConstraints(214, 444, 150, -1));

        jLabel2.setText("Status");
        sourcePane.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(175, 444, 35, 20));

        textualCharacteristicsPriorityLabel1.setText("Priority");
        sourcePane.add(textualCharacteristicsPriorityLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 446, 42, 17));

        metric.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                metricKeyTyped(evt);
            }
        });
        sourcePane.add(metric, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 418, 274, -1));

        unit.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                unitKeyTyped(evt);
            }
        });
        sourcePane.add(unit, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 392, 69, -1));

        textTypeLabel2.setText("Amount");
        sourcePane.add(textTypeLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 367, 60, 19));

        sourceAudienceLabel2.setText("Unit");
        sourcePane.add(sourceAudienceLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 393, 60, 19));

        sourcePurposeLabel1.setText("Metric");
        sourcePane.add(sourcePurposeLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 421, 60, -1));

        amount.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                amountKeyTyped(evt);
            }
        });
        sourcePane.add(amount, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 366, 69, -1));

        textualCharacteristicsLabel3.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel3.setText("Complexity");
        sourcePane.add(textualCharacteristicsLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 482, 71, 22));

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, complexityStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        complexityStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                complexityStatusActionPerformed(evt);
            }
        });
        sourcePane.add(complexityStatus, new org.netbeans.lib.awtextra.AbsoluteConstraints(214, 587, 150, -1));

        jLabel3.setText("Status");
        sourcePane.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(175, 587, 35, 20));

        textualCharacteristicsPriorityLabel2.setText("Priority");
        sourcePane.add(textualCharacteristicsPriorityLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 589, 42, 17));

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, originStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        originStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                originStatusActionPerformed(evt);
            }
        });
        sourcePane.add(originStatus, new org.netbeans.lib.awtextra.AbsoluteConstraints(216, 713, 148, -1));

        jLabel4.setText("Status");
        sourcePane.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(177, 713, 35, 20));

        textualCharacteristicsPriorityLabel3.setText("Priority");
        sourcePane.add(textualCharacteristicsPriorityLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(92, 715, 42, 17));

        textualCharacteristicsLabel4.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel4.setText("Origin");
        sourcePane.add(textualCharacteristicsLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 613, 71, 22));

        originContent.setColumns(20);
        originContent.setRows(5);
        originContent.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                originContentKeyTyped(evt);
            }
        });
        jScrollPane1.setViewportView(originContent);

        sourcePane.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 636, 274, 71));

        complexityContent.setColumns(20);
        complexityContent.setRows(5);
        complexityContent.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                complexityContentKeyTyped(evt);
            }
        });
        jScrollPane2.setViewportView(complexityContent);

        sourcePane.add(jScrollPane2, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 510, 274, 71));

        textualCharacteristicsPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                textualCharacteristicsPriorityStateChanged(evt);
            }
        });
        sourcePane.add(textualCharacteristicsPriority, new org.netbeans.lib.awtextra.AbsoluteConstraints(136, 169, -1, -1));

        volumePriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                volumePriorityStateChanged(evt);
            }
        });
        sourcePane.add(volumePriority, new org.netbeans.lib.awtextra.AbsoluteConstraints(136, 444, -1, -1));

        complexityPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                complexityPriorityStateChanged(evt);
            }
        });
        sourcePane.add(complexityPriority, new org.netbeans.lib.awtextra.AbsoluteConstraints(136, 587, -1, -1));

        originPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                originPriorityStateChanged(evt);
            }
        });
        sourcePane.add(originPriority, new org.netbeans.lib.awtextra.AbsoluteConstraints(138, 713, -1, -1));

        specializedLanguagePriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                specializedLanguagePriorityStateChanged(evt);
            }
        });
        sourcePane.add(specializedLanguagePriority, new org.netbeans.lib.awtextra.AbsoluteConstraints(135, 310, -1, -1));

        sourceTab.setViewportView(sourcePane);

        tabs.addTab("Source", sourceTab);

        targetTab.setPreferredSize(new java.awt.Dimension(400, 1400));

        textualCharacteristicsLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel5.setText("Target Language");

        sourceLanguageLabel1.setText("Language");
        sourceLanguageLabel1.setMaximumSize(new java.awt.Dimension(60, 20));
        sourceLanguageLabel1.setMinimumSize(new java.awt.Dimension(60, 20));
        sourceLanguageLabel1.setPreferredSize(new java.awt.Dimension(60, 20));

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${languageNames}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, targetLanguageList);
        bindingGroup.addBinding(jComboBoxBinding);

        targetLanguageList.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                targetLanguageListActionPerformed(evt);
            }
        });

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${regionNames}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, targetRegionList);
        bindingGroup.addBinding(jComboBoxBinding);

        targetRegionList.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                targetRegionListActionPerformed(evt);
            }
        });

        sourceRegionLable1.setText("Region");

        textualCharacteristicsPriorityLabel4.setText("Priority");

        jLabel5.setText("Status");

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, targetLanguageStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        targetLanguageStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                targetLanguageStatusActionPerformed(evt);
            }
        });

        jLabel6.setText("Terminology");

        targetTerminologyAdd.setText("Add");
        targetTerminologyAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                targetTerminologyAddActionPerformed(evt);
            }
        });

        targetTerminologyEdit.setText("Edit");
        targetTerminologyEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                targetTerminologyEditActionPerformed(evt);
            }
        });

        targetTerminologyRemove.setText("Remove");
        targetTerminologyRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                targetTerminologyRemoveActionPerformed(evt);
            }
        });

        jScrollPane4.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane4.setViewportView(targetTerminologyList);

        targetLanguagePriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                targetLanguagePriorityStateChanged(evt);
            }
        });

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, audienceStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        audienceStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                audienceStatusActionPerformed(evt);
            }
        });

        jLabel7.setText("Status");

        audiencePriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                audiencePriorityStateChanged(evt);
            }
        });

        textualCharacteristicsPriorityLabel5.setText("Priority");

        audienceContent.setColumns(20);
        audienceContent.setRows(5);
        audienceContent.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                audienceContentKeyTyped(evt);
            }
        });
        jScrollPane3.setViewportView(audienceContent);

        textualCharacteristicsLabel7.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel7.setText("Audience");

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, purposeStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        purposeStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                purposeStatusActionPerformed(evt);
            }
        });

        jLabel8.setText("Status");

        purposePriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                purposePriorityStateChanged(evt);
            }
        });

        textualCharacteristicsPriorityLabel6.setText("Priority");

        purposeContent.setColumns(20);
        purposeContent.setRows(5);
        purposeContent.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                purposeContentKeyTyped(evt);
            }
        });
        jScrollPane5.setViewportView(purposeContent);

        textualCharacteristicsLabel8.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel8.setText("Purpose");

        textualCharacteristicsLabel9.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel9.setText("Content Correspondence");

        concorAdd.setText("Add");
        concorAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                concorAddActionPerformed(evt);
            }
        });

        concorEdit.setText("Edit");
        concorEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                concorEditActionPerformed(evt);
            }
        });

        concorRemove.setText("Remove");
        concorRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                concorRemoveActionPerformed(evt);
            }
        });

        jScrollPane6.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane6.setViewportView(contentCorrespondence);

        textualCharacteristicsPriorityLabel7.setText("Priority");

        concorPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                concorPriorityStateChanged(evt);
            }
        });

        jLabel9.setText("Status");

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, concorStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        concorStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                concorStatusActionPerformed(evt);
            }
        });

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, registerStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        registerStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                registerStatusActionPerformed(evt);
            }
        });

        jLabel10.setText("Status");

        registerPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                registerPriorityStateChanged(evt);
            }
        });

        jScrollPane7.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane7.setViewportView(register);

        registerRemove.setText("Remove");
        registerRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                registerRemoveActionPerformed(evt);
            }
        });

        registerEdit.setText("Edit");
        registerEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                registerEditActionPerformed(evt);
            }
        });

        registerAdd.setText("Add");
        registerAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                registerAddActionPerformed(evt);
            }
        });

        textualCharacteristicsLabel10.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel10.setText("Register");

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, fileFormatStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        fileFormatStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                fileFormatStatusActionPerformed(evt);
            }
        });

        jLabel11.setText("Status");

        fileFormatPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                fileFormatPriorityStateChanged(evt);
            }
        });

        textualCharacteristicsPriorityLabel9.setText("Priority");

        textualCharacteristicsLabel11.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel11.setText("File Format");

        fileFormatContent.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                fileFormatContentKeyTyped(evt);
            }
        });
        jScrollPane9.setViewportView(fileFormatContent);

        textualCharacteristicsLabel6.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel6.setText("Style");

        textTypeLabel3.setText("Style Guide");

        styleGuide.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                styleGuideKeyTyped(evt);
            }
        });

        jScrollPane8.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane8.setViewportView(styleRelList);

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, styleStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        styleStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                styleStatusActionPerformed(evt);
            }
        });

        jLabel12.setText("Status");

        stylePriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                stylePriorityStateChanged(evt);
            }
        });

        textualCharacteristicsPriorityLabel10.setText("Priority");

        styleRelRemove.setText("Remove");
        styleRelRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                styleRelRemoveActionPerformed(evt);
            }
        });

        styleRelEdit.setText("Edit");
        styleRelEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                styleRelEditActionPerformed(evt);
            }
        });

        styleRelAdd.setText("Add");
        styleRelAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                styleRelAddActionPerformed(evt);
            }
        });

        jLabel13.setText("Style Relevance");

        jScrollPane10.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane10.setViewportView(layoutList);

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, layoutStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        layoutStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                layoutStatusActionPerformed(evt);
            }
        });

        jLabel14.setText("Status");

        layoutPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                layoutPriorityStateChanged(evt);
            }
        });

        textualCharacteristicsPriorityLabel11.setText("Priority");

        layoutAdd.setText("Add");
        layoutAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                layoutAddActionPerformed(evt);
            }
        });

        layoutEdit.setText("Edit");
        layoutEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                layoutEditActionPerformed(evt);
            }
        });

        layoutRemove.setText("Remove");
        layoutRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                layoutRemoveActionPerformed(evt);
            }
        });

        textualCharacteristicsLabel12.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel12.setText("Layout");

        jLabel15.setText("Priority");

        javax.swing.GroupLayout targetPaneLayout = new javax.swing.GroupLayout(targetPane);
        targetPane.setLayout(targetPaneLayout);
        targetPaneLayout.setHorizontalGroup(
            targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(targetPaneLayout.createSequentialGroup()
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 268, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 321, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 318, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 243, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, 316, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 315, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(10, 10, 10)
                            .addComponent(textualCharacteristicsLabel5))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(20, 20, 20)
                            .addComponent(sourceLanguageLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(targetLanguageList, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(20, 20, 20)
                            .addComponent(sourceRegionLable1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(targetRegionList, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(20, 20, 20)
                            .addComponent(jLabel6)
                            .addGap(12, 12, 12)
                            .addComponent(targetTerminologyAdd)
                            .addGap(6, 6, 6)
                            .addComponent(targetTerminologyEdit)
                            .addGap(6, 6, 6)
                            .addComponent(targetTerminologyRemove))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(90, 90, 90)
                            .addComponent(textualCharacteristicsPriorityLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(targetLanguagePriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(targetLanguageStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(10, 10, 10)
                            .addComponent(textualCharacteristicsLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(68, 68, 68)
                            .addComponent(textualCharacteristicsPriorityLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(audiencePriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(audienceStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(10, 10, 10)
                            .addComponent(textualCharacteristicsLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(67, 67, 67)
                            .addComponent(textualCharacteristicsPriorityLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(purposePriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(purposeStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(10, 10, 10)
                            .addComponent(textualCharacteristicsLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(43, 43, 43)
                            .addComponent(concorAdd)
                            .addGap(6, 6, 6)
                            .addComponent(concorEdit)
                            .addGap(6, 6, 6)
                            .addComponent(concorRemove))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(43, 43, 43)
                            .addComponent(textualCharacteristicsPriorityLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(concorPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(concorStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 191, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(10, 10, 10)
                            .addComponent(textualCharacteristicsLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(42, 42, 42)
                            .addComponent(registerAdd)
                            .addGap(6, 6, 6)
                            .addComponent(registerEdit)
                            .addGap(6, 6, 6)
                            .addComponent(registerRemove))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(42, 42, 42)
                            .addComponent(jLabel15)
                            .addGap(10, 10, 10)
                            .addComponent(registerPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(registerStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 188, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(10, 10, 10)
                            .addComponent(textualCharacteristicsLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, 267, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(94, 94, 94)
                            .addComponent(textualCharacteristicsPriorityLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(fileFormatPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(fileFormatStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(10, 10, 10)
                            .addComponent(textualCharacteristicsLabel6))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(20, 20, 20)
                            .addComponent(textTypeLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(18, 18, 18)
                            .addComponent(styleGuide, javax.swing.GroupLayout.PREFERRED_SIZE, 243, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(20, 20, 20)
                            .addComponent(jLabel13)
                            .addGap(18, 18, 18)
                            .addComponent(styleRelAdd)
                            .addGap(6, 6, 6)
                            .addComponent(styleRelEdit)
                            .addGap(6, 6, 6)
                            .addComponent(styleRelRemove))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(115, 115, 115)
                            .addComponent(textualCharacteristicsPriorityLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(stylePriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(10, 10, 10)
                            .addComponent(jLabel12, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(styleStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(10, 10, 10)
                            .addComponent(textualCharacteristicsLabel12, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(41, 41, 41)
                            .addComponent(layoutAdd)
                            .addGap(6, 6, 6)
                            .addComponent(layoutEdit)
                            .addGap(6, 6, 6)
                            .addComponent(layoutRemove))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(41, 41, 41)
                            .addComponent(jScrollPane10, javax.swing.GroupLayout.PREFERRED_SIZE, 317, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(targetPaneLayout.createSequentialGroup()
                            .addGap(41, 41, 41)
                            .addComponent(textualCharacteristicsPriorityLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(layoutPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(16, 16, 16)
                            .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(4, 4, 4)
                            .addComponent(layoutStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addGap(40, 40, 40))
        );
        targetPaneLayout.setVerticalGroup(
            targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(targetPaneLayout.createSequentialGroup()
                .addGap(11, 11, 11)
                .addComponent(textualCharacteristicsLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(sourceLanguageLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(targetLanguageList, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(targetPaneLayout.createSequentialGroup()
                        .addGap(1, 1, 1)
                        .addComponent(sourceRegionLable1, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(targetRegionList, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel6)
                    .addComponent(targetTerminologyAdd)
                    .addComponent(targetTerminologyEdit)
                    .addComponent(targetTerminologyRemove))
                .addGap(6, 6, 6)
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(targetPaneLayout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addComponent(textualCharacteristicsPriorityLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(targetLanguagePriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(targetLanguageStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(20, 20, 20)
                .addComponent(textualCharacteristicsLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(4, 4, 4)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(targetPaneLayout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addComponent(textualCharacteristicsPriorityLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(audiencePriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(audienceStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(11, 11, 11)
                .addComponent(textualCharacteristicsLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(targetPaneLayout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addComponent(textualCharacteristicsPriorityLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(purposePriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(purposeStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(11, 11, 11)
                .addComponent(textualCharacteristicsLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(concorAdd)
                    .addComponent(concorEdit)
                    .addComponent(concorRemove))
                .addGap(6, 6, 6)
                .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(targetPaneLayout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addComponent(textualCharacteristicsPriorityLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(concorPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(concorStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(11, 11, 11)
                .addComponent(textualCharacteristicsLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(registerAdd)
                    .addComponent(registerEdit)
                    .addComponent(registerRemove))
                .addGap(6, 6, 6)
                .addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(targetPaneLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(jLabel15))
                    .addComponent(registerPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(registerStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(14, 14, 14)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(textualCharacteristicsLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(targetPaneLayout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addComponent(textualCharacteristicsPriorityLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(fileFormatPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(fileFormatStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addComponent(textualCharacteristicsLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(targetPaneLayout.createSequentialGroup()
                        .addGap(1, 1, 1)
                        .addComponent(textTypeLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(styleGuide, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel13)
                    .addComponent(styleRelAdd)
                    .addComponent(styleRelEdit)
                    .addComponent(styleRelRemove))
                .addGap(6, 6, 6)
                .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(targetPaneLayout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addComponent(textualCharacteristicsPriorityLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(stylePriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel12, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(styleStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addComponent(textualCharacteristicsLabel12, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(11, 11, 11)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(layoutAdd)
                    .addComponent(layoutEdit)
                    .addComponent(layoutRemove))
                .addGap(6, 6, 6)
                .addComponent(jScrollPane10, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(targetPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(targetPaneLayout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addComponent(textualCharacteristicsPriorityLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(layoutPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(layoutStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );

        targetTab.setViewportView(targetPane);

        tabs.addTab("Target", targetTab);

        productionPane.setPreferredSize(new java.awt.Dimension(400, 979));

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, typicalStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        typicalStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                typicalStatusActionPerformed(evt);
            }
        });

        jLabel16.setText("Status");

        typicalPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                typicalPriorityStateChanged(evt);
            }
        });

        textualCharacteristicsPriorityLabel8.setText("Priority");

        jScrollPane11.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane11.setViewportView(preparation);

        preparationAdd.setText("Add");
        preparationAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                preparationAddActionPerformed(evt);
            }
        });

        preparationEdit.setText("Edit");
        preparationEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                preparationEditActionPerformed(evt);
            }
        });

        preparationRemove.setText("Remove");
        preparationRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                preparationRemoveActionPerformed(evt);
            }
        });

        textualCharacteristicsLabel13.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel13.setText("Typical Tasks");

        jLabel17.setText("Preparation");

        jLabel18.setText("Initial Translation");

        jScrollPane12.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane12.setViewportView(selfChecking);

        scAdd.setText("Add");
        scAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                scAddActionPerformed(evt);
            }
        });

        scEdit.setText("Edit");
        scEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                scEditActionPerformed(evt);
            }
        });

        scRemove.setText("Remove");
        scRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                scRemoveActionPerformed(evt);
            }
        });

        jLabel19.setText("Self Checking");

        jScrollPane13.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane13.setViewportView(revision);

        revisionRemove.setText("Remove");
        revisionRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                revisionRemoveActionPerformed(evt);
            }
        });

        revisionEdit.setText("Edit");
        revisionEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                revisionEditActionPerformed(evt);
            }
        });

        revisionAdd.setText("Add");
        revisionAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                revisionAddActionPerformed(evt);
            }
        });

        jLabel20.setText("Revision");

        jScrollPane14.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane14.setViewportView(review);

        reviewRemove.setText("Remove");
        reviewRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                reviewRemoveActionPerformed(evt);
            }
        });

        reviewEdit.setText("Edit");
        reviewEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                reviewEditActionPerformed(evt);
            }
        });

        reviewAdd.setText("Add");
        reviewAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                reviewAddActionPerformed(evt);
            }
        });

        jLabel21.setText("Review");

        jScrollPane15.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane15.setToolTipText("");
        jScrollPane15.setViewportView(finalFormatting);

        finalFomattingAdd.setText("Add");
        finalFomattingAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                finalFomattingAddActionPerformed(evt);
            }
        });

        finalFormattingEdit.setText("Edit");
        finalFormattingEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                finalFormattingEditActionPerformed(evt);
            }
        });

        finalFormattingRemove.setText("Remove");
        finalFormattingRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                finalFormattingRemoveActionPerformed(evt);
            }
        });

        jLabel22.setText("Final Formatting");

        jScrollPane16.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane16.setViewportView(proofreading);

        proofAdd.setText("Add");
        proofAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                proofAddActionPerformed(evt);
            }
        });

        proofEdit.setText("Edit");
        proofEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                proofEditActionPerformed(evt);
            }
        });

        proofRemove.setText("Remove");
        proofRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                proofRemoveActionPerformed(evt);
            }
        });

        jLabel23.setText("proofreading");

        textualCharacteristicsLabel14.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel14.setText("Additional Tasks");

        jScrollPane17.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane17.setViewportView(additional);

        additionalRemove.setText("Remove");
        additionalRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                additionalRemoveActionPerformed(evt);
            }
        });

        additionalEdit.setText("Edit");
        additionalEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                additionalEditActionPerformed(evt);
            }
        });

        additionalAdd.setText("Add");
        additionalAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                additionalAddActionPerformed(evt);
            }
        });

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, additionalStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        additionalStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                additionalStatusActionPerformed(evt);
            }
        });

        jLabel24.setText("Status");

        additionalPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                additionalPriorityStateChanged(evt);
            }
        });

        textualCharacteristicsPriorityLabel12.setText("Priority");

        javax.swing.GroupLayout productionPaneLayout = new javax.swing.GroupLayout(productionPane);
        productionPane.setLayout(productionPaneLayout);
        productionPaneLayout.setHorizontalGroup(
            productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(productionPaneLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(productionPaneLayout.createSequentialGroup()
                        .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(textualCharacteristicsLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel22, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(jLabel23, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel21)
                            .addComponent(jLabel20)
                            .addComponent(jLabel19)
                            .addComponent(jLabel17)
                            .addComponent(jLabel18))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(productionPaneLayout.createSequentialGroup()
                                .addComponent(scAdd)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(scEdit)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(scRemove)
                                .addGap(161, 161, 161))
                            .addGroup(productionPaneLayout.createSequentialGroup()
                                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(productionPaneLayout.createSequentialGroup()
                                        .addComponent(proofAdd)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(proofEdit)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(proofRemove))
                                    .addGroup(productionPaneLayout.createSequentialGroup()
                                        .addComponent(finalFomattingAdd)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(finalFormattingEdit)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(finalFormattingRemove))
                                    .addGroup(productionPaneLayout.createSequentialGroup()
                                        .addComponent(reviewAdd)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(reviewEdit)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(reviewRemove))
                                    .addGroup(productionPaneLayout.createSequentialGroup()
                                        .addComponent(revisionAdd)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(revisionEdit)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(revisionRemove)))
                                .addGap(0, 0, Short.MAX_VALUE))
                            .addGroup(productionPaneLayout.createSequentialGroup()
                                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jScrollPane11, javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, productionPaneLayout.createSequentialGroup()
                                        .addComponent(textualCharacteristicsPriorityLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(typicalPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(typicalStatus, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                    .addComponent(initialTranslation)
                                    .addComponent(jScrollPane12)
                                    .addComponent(jScrollPane13)
                                    .addComponent(jScrollPane14)
                                    .addComponent(jScrollPane15)
                                    .addComponent(jScrollPane16)
                                    .addGroup(productionPaneLayout.createSequentialGroup()
                                        .addComponent(preparationAdd)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(preparationEdit)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(preparationRemove))
                                    .addGroup(productionPaneLayout.createSequentialGroup()
                                        .addComponent(additionalAdd)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(additionalEdit)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(additionalRemove))
                                    .addComponent(jScrollPane17)
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, productionPaneLayout.createSequentialGroup()
                                        .addComponent(textualCharacteristicsPriorityLabel12, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(additionalPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jLabel24, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(additionalStatus, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                                .addGap(50, 50, 50))))
                    .addGroup(productionPaneLayout.createSequentialGroup()
                        .addComponent(textualCharacteristicsLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())))
        );
        productionPaneLayout.setVerticalGroup(
            productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(productionPaneLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(textualCharacteristicsLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(textualCharacteristicsPriorityLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(typicalStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(typicalPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(productionPaneLayout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel18)
                            .addComponent(initialTranslation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel17))
                    .addGroup(productionPaneLayout.createSequentialGroup()
                        .addGap(37, 37, 37)
                        .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(preparationAdd)
                            .addComponent(preparationEdit)
                            .addComponent(preparationRemove))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane11, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(scAdd)
                    .addComponent(scEdit)
                    .addComponent(scRemove))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane12, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel19))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(revisionAdd)
                    .addComponent(revisionEdit)
                    .addComponent(revisionRemove)
                    .addComponent(jLabel20))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane13, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(reviewAdd)
                    .addComponent(reviewEdit)
                    .addComponent(reviewRemove)
                    .addComponent(jLabel21))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane14, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(finalFomattingAdd)
                    .addComponent(finalFormattingEdit)
                    .addComponent(finalFormattingRemove)
                    .addComponent(jLabel22))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane15, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(proofAdd)
                    .addComponent(proofEdit)
                    .addComponent(proofRemove)
                    .addComponent(jLabel23))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane16, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(textualCharacteristicsLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(productionPaneLayout.createSequentialGroup()
                        .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(additionalAdd)
                            .addComponent(additionalEdit)
                            .addComponent(additionalRemove))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane17, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(productionPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(textualCharacteristicsPriorityLabel12, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel24, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(additionalStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(additionalPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        productionTab.setViewportView(productionPane);

        tabs.addTab("Production", productionTab);

        environmentPane.setMaximumSize(new java.awt.Dimension(400, 32767));

        jScrollPane18.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane18.setViewportView(technology);

        textualCharacteristicsPriorityLabel13.setText("Priority");

        technologyPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                technologyPriorityStateChanged(evt);
            }
        });

        jLabel25.setText("Status");

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, technologyStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        technologyStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                technologyStatusActionPerformed(evt);
            }
        });

        technologyRemove.setText("Remove");
        technologyRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                technologyRemoveActionPerformed(evt);
            }
        });

        technologyEdit.setText("Edit");
        technologyEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                technologyEditActionPerformed(evt);
            }
        });

        technologyAdd.setText("Add");
        technologyAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                technologyAddActionPerformed(evt);
            }
        });

        textualCharacteristicsLabel15.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel15.setText("Technology");

        referenceMaterials.setColumns(20);
        referenceMaterials.setRows(5);
        referenceMaterials.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                referenceMaterialsKeyTyped(evt);
            }
        });
        jScrollPane19.setViewportView(referenceMaterials);

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, refStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        refStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                refStatusActionPerformed(evt);
            }
        });

        jLabel26.setText("Status");

        refPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                refPriorityStateChanged(evt);
            }
        });

        textualCharacteristicsPriorityLabel14.setText("Priority");

        textualCharacteristicsLabel16.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel16.setText("Reference Materials");

        textualCharacteristicsLabel17.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel17.setText("Workplace Requirements");

        jScrollPane21.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane21.setViewportView(workplace);

        workRemove.setText("Remove");
        workRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                workRemoveActionPerformed(evt);
            }
        });

        workEdit.setText("Edit");
        workEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                workEditActionPerformed(evt);
            }
        });

        workAdd.setText("Add");
        workAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                workAddActionPerformed(evt);
            }
        });

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, workStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        workStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                workStatusActionPerformed(evt);
            }
        });

        jLabel28.setText("Status");

        workPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                workPriorityStateChanged(evt);
            }
        });

        textualCharacteristicsPriorityLabel16.setText("Priority");

        javax.swing.GroupLayout environmentPaneLayout = new javax.swing.GroupLayout(environmentPane);
        environmentPane.setLayout(environmentPaneLayout);
        environmentPaneLayout.setHorizontalGroup(
            environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(environmentPaneLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(environmentPaneLayout.createSequentialGroup()
                        .addComponent(textualCharacteristicsLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())
                    .addGroup(environmentPaneLayout.createSequentialGroup()
                        .addGroup(environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(textualCharacteristicsLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(environmentPaneLayout.createSequentialGroup()
                                .addGap(24, 24, 24)
                                .addGroup(environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(environmentPaneLayout.createSequentialGroup()
                                        .addComponent(workAdd)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(workEdit)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(workRemove))
                                    .addGroup(environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addGroup(environmentPaneLayout.createSequentialGroup()
                                            .addComponent(textualCharacteristicsPriorityLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(refPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                            .addComponent(jLabel26, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(refStatus, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                        .addComponent(jScrollPane19, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE)
                                        .addGroup(environmentPaneLayout.createSequentialGroup()
                                            .addComponent(technologyAdd)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(technologyEdit)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(technologyRemove))
                                        .addGroup(environmentPaneLayout.createSequentialGroup()
                                            .addComponent(textualCharacteristicsPriorityLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(technologyPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                            .addComponent(jLabel25, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(technologyStatus, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                        .addComponent(jScrollPane18)
                                        .addComponent(jScrollPane21, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE)
                                        .addGroup(environmentPaneLayout.createSequentialGroup()
                                            .addComponent(textualCharacteristicsPriorityLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(workPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                            .addComponent(jLabel28, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(workStatus, 0, 197, Short.MAX_VALUE)))))
                            .addComponent(textualCharacteristicsLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(0, 17, Short.MAX_VALUE))))
        );
        environmentPaneLayout.setVerticalGroup(
            environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(environmentPaneLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(textualCharacteristicsLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(technologyAdd)
                    .addComponent(technologyEdit)
                    .addComponent(technologyRemove))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane18, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(textualCharacteristicsPriorityLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel25, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(technologyStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(technologyPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(textualCharacteristicsLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane19, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(textualCharacteristicsPriorityLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel26, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(refStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(refPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(textualCharacteristicsLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(workAdd)
                    .addComponent(workEdit)
                    .addComponent(workRemove))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane21, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(environmentPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(textualCharacteristicsPriorityLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel28, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(workStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(workPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(53, Short.MAX_VALUE))
        );

        environmentTab.setViewportView(environmentPane);

        tabs.addTab("Environment", environmentTab);

        textualCharacteristicsLabel18.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel18.setText("Permissions");

        jLabel32.setText("Copyright");

        copyright.setColumns(20);
        copyright.setRows(5);
        jScrollPane20.setViewportView(copyright);

        jLabel29.setText("Recognition");

        recognition.setColumns(20);
        recognition.setRows(5);
        jScrollPane22.setViewportView(recognition);

        restrictionsAdd.setText("Add");
        restrictionsAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                restrictionsAddActionPerformed(evt);
            }
        });

        restrictionsEdit.setText("Edit");
        restrictionsEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                restrictionsEditActionPerformed(evt);
            }
        });

        restrictionsRemove.setText("Remove");
        restrictionsRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                restrictionsRemoveActionPerformed(evt);
            }
        });

        jLabel30.setText("Restrictions");

        jScrollPane23.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

        restrictions.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane23.setViewportView(restrictions);

        textualCharacteristicsPriorityLabel15.setText("Priority");

        permissionsPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                permissionsPriorityStateChanged(evt);
            }
        });

        jLabel31.setText("Status");

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, permissionsStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        permissionsStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                permissionsStatusActionPerformed(evt);
            }
        });

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, submissionsStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        submissionsStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                submissionsStatusActionPerformed(evt);
            }
        });

        jLabel43.setText("Status");

        submissionsPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                submissionsPriorityStateChanged(evt);
            }
        });

        textualCharacteristicsPriorityLabel18.setText("Priority");

        jScrollPane27.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

        delivery.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane27.setViewportView(delivery);

        jLabel36.setText("Delivery");

        delAdd.setText("Add");
        delAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                delAddActionPerformed(evt);
            }
        });

        delEdit.setText("Edit");
        delEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                delEditActionPerformed(evt);
            }
        });

        delRemove.setText("Remove");
        delRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                delRemoveActionPerformed(evt);
            }
        });

        jScrollPane26.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

        deliverables.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane26.setViewportView(deliverables);

        ablesAdd.setText("Add");
        ablesAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ablesAddActionPerformed(evt);
            }
        });

        ablesRemove.setText("Remove");
        ablesRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ablesRemoveActionPerformed(evt);
            }
        });

        ablesEdit.setText("Edit");
        ablesEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ablesEditActionPerformed(evt);
            }
        });

        jLabel35.setText("Deliverables");

        jScrollPane24.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

        qualifications.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane24.setViewportView(qualifications);

        qualAdd.setText("Add");
        qualAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                qualAddActionPerformed(evt);
            }
        });

        qualEdit.setText("Edit");
        qualEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                qualEditActionPerformed(evt);
            }
        });

        qualRemove.setText("Remove");
        qualRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                qualRemoveActionPerformed(evt);
            }
        });

        jLabel33.setText("Qualifications");

        jLabel27.setText("Deadline");

        textualCharacteristicsLabel19.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel19.setText("Submissions");

        instructEdit.setText("Edit");
        instructEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                instructEditActionPerformed(evt);
            }
        });

        jLabel42.setText("Status");

        jLabel34.setText("Compensation");

        jLabel40.setText("Address");

        jLabel38.setText("Name");

        jScrollPane28.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

        instructions.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jScrollPane28.setViewportView(instructions);

        jLabel37.setText("Communication");

        jLabel41.setText("Instructions");

        jLabel39.setText("Organization");

        jScrollPane25.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

        conAddress.setColumns(20);
        conAddress.setRows(5);
        jScrollPane25.setViewportView(conAddress);

        instructAdd.setText("Add");
        instructAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                instructAddActionPerformed(evt);
            }
        });

        eLProperty = org.jdesktop.beansbinding.ELProperty.create("${statuses}");
        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, picklists, eLProperty, expectationsStatus);
        bindingGroup.addBinding(jComboBoxBinding);

        expectationsStatus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                expectationsStatusActionPerformed(evt);
            }
        });

        textualCharacteristicsLabel20.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        textualCharacteristicsLabel20.setText("Expectations");

        compensation.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                compensationActionPerformed(evt);
            }
        });

        textualCharacteristicsPriorityLabel17.setText("Priority");

        instructRemove.setText("Remove");
        instructRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                instructRemoveActionPerformed(evt);
            }
        });

        expectationsPriority.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                expectationsPriorityStateChanged(evt);
            }
        });

        javax.swing.GroupLayout relationshipsPaneLayout = new javax.swing.GroupLayout(relationshipsPane);
        relationshipsPane.setLayout(relationshipsPaneLayout);
        relationshipsPaneLayout.setHorizontalGroup(
            relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(relationshipsPaneLayout.createSequentialGroup()
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(textualCharacteristicsLabel18, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel32, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(28, 28, 28)
                        .addComponent(jScrollPane20, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel29, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(14, 14, 14)
                        .addComponent(jScrollPane22, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel30, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(10, 10, 10)
                        .addComponent(restrictionsAdd)
                        .addGap(6, 6, 6)
                        .addComponent(restrictionsEdit)
                        .addGap(6, 6, 6)
                        .addComponent(restrictionsRemove))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jScrollPane23, javax.swing.GroupLayout.PREFERRED_SIZE, 393, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(textualCharacteristicsLabel19, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel27, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(20, 20, 20)
                        .addComponent(deadline, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel33)
                        .addGap(10, 10, 10)
                        .addComponent(qualAdd)
                        .addGap(6, 6, 6)
                        .addComponent(qualEdit)
                        .addGap(6, 6, 6)
                        .addComponent(qualRemove))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(30, 30, 30)
                        .addComponent(jScrollPane24, javax.swing.GroupLayout.PREFERRED_SIZE, 383, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel35, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(4, 4, 4)
                        .addComponent(ablesAdd)
                        .addGap(6, 6, 6)
                        .addComponent(ablesEdit)
                        .addGap(6, 6, 6)
                        .addComponent(ablesRemove))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(30, 30, 30)
                        .addComponent(jScrollPane26, javax.swing.GroupLayout.PREFERRED_SIZE, 383, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel36, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(delAdd)
                        .addGap(6, 6, 6)
                        .addComponent(delEdit)
                        .addGap(6, 6, 6)
                        .addComponent(delRemove))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(30, 30, 30)
                        .addComponent(jScrollPane27, javax.swing.GroupLayout.PREFERRED_SIZE, 383, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(textualCharacteristicsLabel20, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jLabel34, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(10, 10, 10)
                        .addComponent(compensation, javax.swing.GroupLayout.PREFERRED_SIZE, 272, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jLabel37))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel38)
                        .addGap(44, 44, 44)
                        .addComponent(conName, javax.swing.GroupLayout.PREFERRED_SIZE, 286, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel39)
                        .addGap(10, 10, 10)
                        .addComponent(conOrg, javax.swing.GroupLayout.PREFERRED_SIZE, 286, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel40)
                        .addGap(32, 32, 32)
                        .addComponent(jScrollPane25, javax.swing.GroupLayout.PREFERRED_SIZE, 286, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jLabel41)
                        .addGap(38, 38, 38)
                        .addComponent(instructAdd)
                        .addGap(6, 6, 6)
                        .addComponent(instructEdit)
                        .addGap(6, 6, 6)
                        .addComponent(instructRemove))
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(91, 91, 91)
                        .addComponent(jScrollPane28, javax.swing.GroupLayout.PREFERRED_SIZE, 322, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, relationshipsPaneLayout.createSequentialGroup()
                        .addGap(30, 30, 30)
                        .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, relationshipsPaneLayout.createSequentialGroup()
                                .addComponent(textualCharacteristicsPriorityLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(4, 4, 4)
                                .addComponent(expectationsPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(10, 10, 10)
                                .addComponent(jLabel42, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(10, 10, 10)
                                .addComponent(expectationsStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 237, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, relationshipsPaneLayout.createSequentialGroup()
                                .addComponent(textualCharacteristicsPriorityLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(4, 4, 4)
                                .addComponent(permissionsPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)
                                .addComponent(jLabel31, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(11, 11, 11)
                                .addComponent(permissionsStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 242, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, relationshipsPaneLayout.createSequentialGroup()
                                .addComponent(textualCharacteristicsPriorityLabel18, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(4, 4, 4)
                                .addComponent(submissionsPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(10, 10, 10)
                                .addComponent(jLabel43, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(10, 10, 10)
                                .addComponent(submissionsStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 253, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                .addContainerGap())
        );
        relationshipsPaneLayout.setVerticalGroup(
            relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(relationshipsPaneLayout.createSequentialGroup()
                .addGap(11, 11, 11)
                .addComponent(textualCharacteristicsLabel18, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel32)
                    .addComponent(jScrollPane20, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel29)
                    .addComponent(jScrollPane22, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(11, 11, 11)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(4, 4, 4)
                        .addComponent(jLabel30))
                    .addComponent(restrictionsAdd)
                    .addComponent(restrictionsEdit)
                    .addComponent(restrictionsRemove))
                .addGap(6, 6, 6)
                .addComponent(jScrollPane23, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(16, 16, 16)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addComponent(textualCharacteristicsPriorityLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(permissionsPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(permissionsStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel31, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(18, 18, 18)
                .addComponent(textualCharacteristicsLabel19, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(10, 10, 10)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(jLabel27))
                    .addComponent(deadline, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(9, 9, 9)
                        .addComponent(jLabel33))
                    .addComponent(qualAdd)
                    .addComponent(qualEdit)
                    .addComponent(qualRemove))
                .addGap(14, 14, 14)
                .addComponent(jScrollPane24, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(4, 4, 4)
                        .addComponent(jLabel35))
                    .addComponent(ablesAdd)
                    .addComponent(ablesEdit)
                    .addComponent(ablesRemove))
                .addGap(6, 6, 6)
                .addComponent(jScrollPane26, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(4, 4, 4)
                        .addComponent(jLabel36))
                    .addComponent(delAdd)
                    .addComponent(delEdit)
                    .addComponent(delRemove))
                .addGap(6, 6, 6)
                .addComponent(jScrollPane27, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(11, 11, 11)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addComponent(textualCharacteristicsPriorityLabel18, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(submissionsPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel43, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(submissionsStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(textualCharacteristicsLabel20, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(jLabel34))
                    .addComponent(compensation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addComponent(jLabel37)
                .addGap(6, 6, 6)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel38)
                    .addComponent(conName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(jLabel39))
                    .addComponent(conOrg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel40)
                    .addComponent(jScrollPane25, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(4, 4, 4)
                        .addComponent(jLabel41))
                    .addComponent(instructAdd)
                    .addComponent(instructEdit)
                    .addComponent(instructRemove))
                .addGap(6, 6, 6)
                .addComponent(jScrollPane28, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(relationshipsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(relationshipsPaneLayout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addComponent(textualCharacteristicsPriorityLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(expectationsPriority, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel42, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(expectationsStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );

        relationshipsTab.setViewportView(relationshipsPane);

        tabs.addTab("Relationships", relationshipsTab);

        file.setText("File");

        save.setText("Save");
        save.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                saveActionPerformed(evt);
            }
        });
        file.add(save);

        saveAs.setText("Save as");
        saveAs.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                saveAsActionPerformed(evt);
            }
        });
        file.add(saveAs);

        load.setText("Load");
        load.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                loadActionPerformed(evt);
            }
        });
        file.add(load);

        exit.setText("Exit");
        exit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                exitActionPerformed(evt);
            }
        });
        file.add(exit);

        menu.add(file);

        help.setText("Help");

        specsHelp.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK));
        specsHelp.setText("Specifications");
        help.add(specsHelp);

        rubricHelp.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.ALT_MASK));
        rubricHelp.setText("Rubric");
        help.add(rubricHelp);

        about.setText("About");
        help.add(about);

        menu.add(help);

        setJMenuBar(menu);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(tabs, javax.swing.GroupLayout.PREFERRED_SIZE, 476, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 579, Short.MAX_VALUE)
        );

        bindingGroup.bind();

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void exitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitActionPerformed
        if (saved) {
            System.exit(0);
        } else {
            int tosave = JOptionPane.showConfirmDialog(this, "Save current specifications?");
            if (tosave == JOptionPane.YES_OPTION) {
                saveSpecifications();
                if (saved) {
                    System.exit(0);
                }
            } else if (tosave == JOptionPane.NO_OPTION) {
                System.exit(0);
            } else {
                //do nothing
            }
        }
    }//GEN-LAST:event_exitActionPerformed

    private void saveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveActionPerformed
        saveSpecifications();
    }//GEN-LAST:event_saveActionPerformed

    private void saveAsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveAsActionPerformed
        updateSpecifications(true);
        JFileChooser fc = new JFileChooser(location);
        fc.addChoosableFileFilter(ff);
        fc.setFileFilter(ff);
        int selected = fc.showSaveDialog(this);
        if (selected == JFileChooser.APPROVE_OPTION) {
            File outfile = fc.getSelectedFile();
            location = outfile.getAbsolutePath();
            if (!location.endsWith(".yml") && !location.endsWith(".yaml") && !location.endsWith(".ysp")) {
                location = location + ".yml";
            }
            try {
                specs.dump(location);
                saved = true;
            } catch (IOException ex) {
                JOptionPane.showMessageDialog(this, "Unable to save file!");
            }
        } else {
            //do nothing
        }

    }//GEN-LAST:event_saveAsActionPerformed

    private void loadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loadActionPerformed
        loadSpecifications();
    }//GEN-LAST:event_loadActionPerformed

    private void originStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_originStatusActionPerformed
        updateOrigin();
    }//GEN-LAST:event_originStatusActionPerformed

    private void complexityStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_complexityStatusActionPerformed
        updateComplexity();
    }//GEN-LAST:event_complexityStatusActionPerformed

    private void amountKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_amountKeyTyped
        updateVolume();
    }//GEN-LAST:event_amountKeyTyped

    private void unitKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_unitKeyTyped
        updateVolume();
    }//GEN-LAST:event_unitKeyTyped

    private void metricKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_metricKeyTyped
        updateVolume();
    }//GEN-LAST:event_metricKeyTyped

    private void volumeStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_volumeStatusActionPerformed
        updateVolume();
    }//GEN-LAST:event_volumeStatusActionPerformed

    private void sourceTerminologyFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_sourceTerminologyFieldKeyTyped
        updateSpecializedLanguage();
    }//GEN-LAST:event_sourceTerminologyFieldKeyTyped

    private void subjectFieldFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_subjectFieldFieldKeyTyped
        updateSpecializedLanguage();
    }//GEN-LAST:event_subjectFieldFieldKeyTyped

    private void specializedLanguageStatusListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_specializedLanguageStatusListActionPerformed
        updateSpecializedLanguage();
    }//GEN-LAST:event_specializedLanguageStatusListActionPerformed

    private void textualCharacteristicsStatusListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_textualCharacteristicsStatusListActionPerformed
        updateTextualCharacteristics();
    }//GEN-LAST:event_textualCharacteristicsStatusListActionPerformed

    private void sourceRegionListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sourceRegionListActionPerformed
        updateTextualCharacteristics();
    }//GEN-LAST:event_sourceRegionListActionPerformed

    private void sourceLanguageListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sourceLanguageListActionPerformed
        updateTextualCharacteristics();
    }//GEN-LAST:event_sourceLanguageListActionPerformed

    private void sourcePurposeFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_sourcePurposeFieldKeyTyped
        updateTextualCharacteristics();
    }//GEN-LAST:event_sourcePurposeFieldKeyTyped

    private void sourceAudienceFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_sourceAudienceFieldKeyTyped
        updateTextualCharacteristics();
    }//GEN-LAST:event_sourceAudienceFieldKeyTyped

    private void textTypeFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textTypeFieldKeyTyped
        updateTextualCharacteristics();
    }//GEN-LAST:event_textTypeFieldKeyTyped

    private void complexityContentKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_complexityContentKeyTyped
        updateComplexity();
    }//GEN-LAST:event_complexityContentKeyTyped

    private void originContentKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_originContentKeyTyped
        updateOrigin();
    }//GEN-LAST:event_originContentKeyTyped

    private void targetLanguageListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_targetLanguageListActionPerformed
        updateTargetLanguage();
    }//GEN-LAST:event_targetLanguageListActionPerformed

    private void targetRegionListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_targetRegionListActionPerformed
        updateTargetLanguage();
    }//GEN-LAST:event_targetRegionListActionPerformed

    private void targetLanguageStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_targetLanguageStatusActionPerformed
        updateTargetLanguage();
    }//GEN-LAST:event_targetLanguageStatusActionPerformed

    private void targetTerminologyAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_targetTerminologyAddActionPerformed
        addDirective(targetTerminologyList);
    }//GEN-LAST:event_targetTerminologyAddActionPerformed

    private void targetTerminologyEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_targetTerminologyEditActionPerformed
        editDirective(targetTerminologyList);
    }//GEN-LAST:event_targetTerminologyEditActionPerformed

    private void targetLanguagePriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_targetLanguagePriorityStateChanged
        updateTargetLanguage();
    }//GEN-LAST:event_targetLanguagePriorityStateChanged

    private void textualCharacteristicsPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_textualCharacteristicsPriorityStateChanged
        updateTextualCharacteristics();
    }//GEN-LAST:event_textualCharacteristicsPriorityStateChanged

    private void volumePriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_volumePriorityStateChanged
        updateVolume();
    }//GEN-LAST:event_volumePriorityStateChanged

    private void complexityPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_complexityPriorityStateChanged
        updateComplexity();
    }//GEN-LAST:event_complexityPriorityStateChanged

    private void originPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_originPriorityStateChanged
        updateOrigin();
    }//GEN-LAST:event_originPriorityStateChanged

    private void specializedLanguagePriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_specializedLanguagePriorityStateChanged
        updateSpecializedLanguage();
    }//GEN-LAST:event_specializedLanguagePriorityStateChanged

    private void targetTerminologyRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_targetTerminologyRemoveActionPerformed
        removeDirective(targetTerminologyList);
    }//GEN-LAST:event_targetTerminologyRemoveActionPerformed

    private void audienceStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_audienceStatusActionPerformed
        updateAudience();
    }//GEN-LAST:event_audienceStatusActionPerformed

    private void audiencePriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_audiencePriorityStateChanged
        updateAudience();
    }//GEN-LAST:event_audiencePriorityStateChanged

    private void audienceContentKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_audienceContentKeyTyped
        updateAudience();
    }//GEN-LAST:event_audienceContentKeyTyped

    private void purposeStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_purposeStatusActionPerformed
        updatePurpose();
    }//GEN-LAST:event_purposeStatusActionPerformed

    private void purposePriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_purposePriorityStateChanged
        updatePurpose();
    }//GEN-LAST:event_purposePriorityStateChanged

    private void purposeContentKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_purposeContentKeyTyped
        updatePurpose();
    }//GEN-LAST:event_purposeContentKeyTyped

    private void concorAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_concorAddActionPerformed
        addDirective(contentCorrespondence);
    }//GEN-LAST:event_concorAddActionPerformed

    private void concorEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_concorEditActionPerformed
        editDirective(contentCorrespondence);
    }//GEN-LAST:event_concorEditActionPerformed

    private void concorRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_concorRemoveActionPerformed
        removeDirective(contentCorrespondence);
    }//GEN-LAST:event_concorRemoveActionPerformed

    private void concorPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_concorPriorityStateChanged
        updateContentCorr();
    }//GEN-LAST:event_concorPriorityStateChanged

    private void concorStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_concorStatusActionPerformed
        updateContentCorr();
    }//GEN-LAST:event_concorStatusActionPerformed

    private void registerStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_registerStatusActionPerformed
        updateRegister();
    }//GEN-LAST:event_registerStatusActionPerformed

    private void registerPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_registerPriorityStateChanged
        updateRegister();
    }//GEN-LAST:event_registerPriorityStateChanged

    private void registerRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_registerRemoveActionPerformed
        removeDirective(register);
    }//GEN-LAST:event_registerRemoveActionPerformed

    private void registerEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_registerEditActionPerformed
        editDirective(register);
    }//GEN-LAST:event_registerEditActionPerformed

    private void registerAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_registerAddActionPerformed
        addDirective(register);
    }//GEN-LAST:event_registerAddActionPerformed

    private void fileFormatStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileFormatStatusActionPerformed
        updateFileFormat();
    }//GEN-LAST:event_fileFormatStatusActionPerformed

    private void fileFormatPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_fileFormatPriorityStateChanged
        updateFileFormat();
    }//GEN-LAST:event_fileFormatPriorityStateChanged

    private void fileFormatContentKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_fileFormatContentKeyTyped
        updateFileFormat();
    }//GEN-LAST:event_fileFormatContentKeyTyped

    private void styleGuideKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_styleGuideKeyTyped
        updateStyle();
    }//GEN-LAST:event_styleGuideKeyTyped

    private void styleStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_styleStatusActionPerformed
        updateStyle();
    }//GEN-LAST:event_styleStatusActionPerformed

    private void stylePriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_stylePriorityStateChanged
        updateStyle();
    }//GEN-LAST:event_stylePriorityStateChanged

    private void styleRelRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_styleRelRemoveActionPerformed
        removeDirective(styleRelList);
    }//GEN-LAST:event_styleRelRemoveActionPerformed

    private void styleRelEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_styleRelEditActionPerformed
        editDirective(styleRelList);
    }//GEN-LAST:event_styleRelEditActionPerformed

    private void styleRelAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_styleRelAddActionPerformed
        addDirective(styleRelList);
    }//GEN-LAST:event_styleRelAddActionPerformed

    private void layoutStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_layoutStatusActionPerformed
        updateLayout();
    }//GEN-LAST:event_layoutStatusActionPerformed

    private void layoutPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_layoutPriorityStateChanged
        updateLayout();
    }//GEN-LAST:event_layoutPriorityStateChanged

    private void layoutAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_layoutAddActionPerformed
        addDirective(layoutList);
    }//GEN-LAST:event_layoutAddActionPerformed

    private void layoutEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_layoutEditActionPerformed
        editDirective(layoutList);
    }//GEN-LAST:event_layoutEditActionPerformed

    private void layoutRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_layoutRemoveActionPerformed
        removeDirective(layoutList);
    }//GEN-LAST:event_layoutRemoveActionPerformed

    private void typicalStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_typicalStatusActionPerformed
        updateTypical();
    }//GEN-LAST:event_typicalStatusActionPerformed

    private void typicalPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_typicalPriorityStateChanged
        updateTypical();
    }//GEN-LAST:event_typicalPriorityStateChanged

    private void preparationAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_preparationAddActionPerformed
        addDirective(preparation);
    }//GEN-LAST:event_preparationAddActionPerformed

    private void preparationEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_preparationEditActionPerformed
        editDirective(preparation);
    }//GEN-LAST:event_preparationEditActionPerformed

    private void preparationRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_preparationRemoveActionPerformed
        removeDirective(preparation);
    }//GEN-LAST:event_preparationRemoveActionPerformed

    private void scAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scAddActionPerformed
        addDirective(selfChecking);
    }//GEN-LAST:event_scAddActionPerformed

    private void scEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scEditActionPerformed
        editDirective(selfChecking);
    }//GEN-LAST:event_scEditActionPerformed

    private void scRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scRemoveActionPerformed
        removeDirective(selfChecking);
    }//GEN-LAST:event_scRemoveActionPerformed

    private void revisionRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_revisionRemoveActionPerformed
        removeDirective(revision);
    }//GEN-LAST:event_revisionRemoveActionPerformed

    private void revisionEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_revisionEditActionPerformed
        editDirective(revision);
    }//GEN-LAST:event_revisionEditActionPerformed

    private void revisionAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_revisionAddActionPerformed
        addDirective(revision);
    }//GEN-LAST:event_revisionAddActionPerformed

    private void reviewRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_reviewRemoveActionPerformed
        removeDirective(review);
    }//GEN-LAST:event_reviewRemoveActionPerformed

    private void reviewEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_reviewEditActionPerformed
        editDirective(review);
    }//GEN-LAST:event_reviewEditActionPerformed

    private void reviewAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_reviewAddActionPerformed
        addDirective(review);
    }//GEN-LAST:event_reviewAddActionPerformed

    private void finalFomattingAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_finalFomattingAddActionPerformed
        addDirective(finalFormatting);
    }//GEN-LAST:event_finalFomattingAddActionPerformed

    private void finalFormattingEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_finalFormattingEditActionPerformed
        editDirective(finalFormatting);
    }//GEN-LAST:event_finalFormattingEditActionPerformed

    private void finalFormattingRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_finalFormattingRemoveActionPerformed
        removeDirective(finalFormatting);
    }//GEN-LAST:event_finalFormattingRemoveActionPerformed

    private void proofAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_proofAddActionPerformed
        addDirective(proofreading);
    }//GEN-LAST:event_proofAddActionPerformed

    private void proofEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_proofEditActionPerformed
        editDirective(proofreading);
    }//GEN-LAST:event_proofEditActionPerformed

    private void proofRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_proofRemoveActionPerformed
        removeDirective(proofreading);
    }//GEN-LAST:event_proofRemoveActionPerformed

    private void additionalRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_additionalRemoveActionPerformed
        removeDirective(additional);
    }//GEN-LAST:event_additionalRemoveActionPerformed

    private void additionalEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_additionalEditActionPerformed
        editDirective(additional);
    }//GEN-LAST:event_additionalEditActionPerformed

    private void additionalAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_additionalAddActionPerformed
        addDirective(additional);
    }//GEN-LAST:event_additionalAddActionPerformed

    private void additionalStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_additionalStatusActionPerformed
        updateAdditional();
    }//GEN-LAST:event_additionalStatusActionPerformed

    private void additionalPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_additionalPriorityStateChanged
        updateAdditional();
    }//GEN-LAST:event_additionalPriorityStateChanged

    private void technologyPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_technologyPriorityStateChanged
        updateTechnology();
    }//GEN-LAST:event_technologyPriorityStateChanged

    private void technologyStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_technologyStatusActionPerformed
        updateTechnology();
    }//GEN-LAST:event_technologyStatusActionPerformed

    private void technologyRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_technologyRemoveActionPerformed
        removeDirective(technology);
    }//GEN-LAST:event_technologyRemoveActionPerformed

    private void technologyEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_technologyEditActionPerformed
        editDirective(technology);
    }//GEN-LAST:event_technologyEditActionPerformed

    private void technologyAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_technologyAddActionPerformed
        addDirective(technology);
    }//GEN-LAST:event_technologyAddActionPerformed

    private void referenceMaterialsKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_referenceMaterialsKeyTyped
        updateReferenceMaterials();
    }//GEN-LAST:event_referenceMaterialsKeyTyped

    private void refStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refStatusActionPerformed
        updateReferenceMaterials();
    }//GEN-LAST:event_refStatusActionPerformed

    private void refPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_refPriorityStateChanged
        updateReferenceMaterials();
    }//GEN-LAST:event_refPriorityStateChanged

    private void workRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_workRemoveActionPerformed
        removeDirective(workplace);
    }//GEN-LAST:event_workRemoveActionPerformed

    private void workEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_workEditActionPerformed
        editDirective(workplace);
    }//GEN-LAST:event_workEditActionPerformed

    private void workAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_workAddActionPerformed
        addDirective(workplace);
    }//GEN-LAST:event_workAddActionPerformed

    private void workStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_workStatusActionPerformed
        updateWorkplace();
    }//GEN-LAST:event_workStatusActionPerformed

    private void workPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_workPriorityStateChanged
        updateWorkplace();
    }//GEN-LAST:event_workPriorityStateChanged

    private void submissionsPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_submissionsPriorityStateChanged
        updateSubmissions();
    }//GEN-LAST:event_submissionsPriorityStateChanged

    private void submissionsStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_submissionsStatusActionPerformed
        updateSubmissions();
    }//GEN-LAST:event_submissionsStatusActionPerformed

    private void instructRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_instructRemoveActionPerformed
        removeDirective(instructions);
    }//GEN-LAST:event_instructRemoveActionPerformed

    private void instructEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_instructEditActionPerformed
        editDirective(instructions);
    }//GEN-LAST:event_instructEditActionPerformed

    private void instructAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_instructAddActionPerformed
        addDirective(instructions);
    }//GEN-LAST:event_instructAddActionPerformed

    private void expectationsPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_expectationsPriorityStateChanged
        updateExpectations();
    }//GEN-LAST:event_expectationsPriorityStateChanged

    private void expectationsStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_expectationsStatusActionPerformed
        updateExpectations();
    }//GEN-LAST:event_expectationsStatusActionPerformed

    private void compensationActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_compensationActionPerformed
        updateExpectations();
    }//GEN-LAST:event_compensationActionPerformed

    private void delAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_delAddActionPerformed
        addDirective(delivery);
    }//GEN-LAST:event_delAddActionPerformed

    private void delRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_delRemoveActionPerformed
        removeDirective(delivery);
    }//GEN-LAST:event_delRemoveActionPerformed

    private void delEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_delEditActionPerformed
        editDirective(delivery);
    }//GEN-LAST:event_delEditActionPerformed

    private void ablesAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ablesAddActionPerformed
        addDirective(deliverables);
    }//GEN-LAST:event_ablesAddActionPerformed

    private void ablesEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ablesEditActionPerformed
        editDirective(deliverables);
    }//GEN-LAST:event_ablesEditActionPerformed

    private void ablesRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ablesRemoveActionPerformed
        removeDirective(deliverables);
    }//GEN-LAST:event_ablesRemoveActionPerformed

    private void qualAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_qualAddActionPerformed
        addDirective(qualifications);
    }//GEN-LAST:event_qualAddActionPerformed

    private void qualEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_qualEditActionPerformed
        editDirective(qualifications);
    }//GEN-LAST:event_qualEditActionPerformed

    private void qualRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_qualRemoveActionPerformed
        removeDirective(qualifications);
    }//GEN-LAST:event_qualRemoveActionPerformed

    private void restrictionsRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_restrictionsRemoveActionPerformed
        removeDirective(restrictions);
    }//GEN-LAST:event_restrictionsRemoveActionPerformed

    private void restrictionsEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_restrictionsEditActionPerformed
        editDirective(restrictions);
    }//GEN-LAST:event_restrictionsEditActionPerformed

    private void restrictionsAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_restrictionsAddActionPerformed
        addDirective(restrictions);
    }//GEN-LAST:event_restrictionsAddActionPerformed

    private void permissionsPriorityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_permissionsPriorityStateChanged
        updatePermissions();
    }//GEN-LAST:event_permissionsPriorityStateChanged

    private void permissionsStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_permissionsStatusActionPerformed
        updatePermissions();
    }//GEN-LAST:event_permissionsStatusActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /*
         * Set the Nimbus look and feel
         */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                //System.out.println(info.getName());
//                if ("Nimbus".equals(info.getName())) {
//                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
//                    break;
//                }
            }
            Properties props = new Properties();
            props.put("logoString", "Ruqual");
            AcrylLookAndFeel.setCurrentTheme(props);
            javax.swing.UIManager.setLookAndFeel("com.jtattoo.plaf.acryl.AcrylLookAndFeel");
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new Main().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton ablesAdd;
    private javax.swing.JButton ablesEdit;
    private javax.swing.JButton ablesRemove;
    private javax.swing.JMenuItem about;
    private javax.swing.JList additional;
    private javax.swing.JButton additionalAdd;
    private javax.swing.JButton additionalEdit;
    private javax.swing.JSpinner additionalPriority;
    private javax.swing.JButton additionalRemove;
    private javax.swing.JComboBox additionalStatus;
    private javax.swing.JFormattedTextField amount;
    private javax.swing.JTextArea audienceContent;
    private javax.swing.JSpinner audiencePriority;
    private javax.swing.JComboBox audienceStatus;
    private javax.swing.JTextField compensation;
    private javax.swing.JTextArea complexityContent;
    private javax.swing.JSpinner complexityPriority;
    private javax.swing.JComboBox complexityStatus;
    private javax.swing.JTextArea conAddress;
    private javax.swing.JTextField conName;
    private javax.swing.JTextField conOrg;
    private javax.swing.JButton concorAdd;
    private javax.swing.JButton concorEdit;
    private javax.swing.JSpinner concorPriority;
    private javax.swing.JButton concorRemove;
    private javax.swing.JComboBox concorStatus;
    private javax.swing.JList contentCorrespondence;
    private javax.swing.JTextArea copyright;
    private javax.swing.JFormattedTextField deadline;
    private javax.swing.JButton delAdd;
    private javax.swing.JButton delEdit;
    private javax.swing.JButton delRemove;
    private javax.swing.JList deliverables;
    private javax.swing.JList delivery;
    private javax.swing.JPanel environmentPane;
    private javax.swing.JScrollPane environmentTab;
    private javax.swing.JMenuItem exit;
    private javax.swing.JSpinner expectationsPriority;
    private javax.swing.JComboBox expectationsStatus;
    private javax.swing.JMenu file;
    private javax.swing.JTextPane fileFormatContent;
    private javax.swing.JSpinner fileFormatPriority;
    private javax.swing.JComboBox fileFormatStatus;
    private javax.swing.JButton finalFomattingAdd;
    private javax.swing.JList finalFormatting;
    private javax.swing.JButton finalFormattingEdit;
    private javax.swing.JButton finalFormattingRemove;
    private javax.swing.JMenu help;
    private javax.swing.JTextField initialTranslation;
    private javax.swing.JButton instructAdd;
    private javax.swing.JButton instructEdit;
    private javax.swing.JButton instructRemove;
    private javax.swing.JList instructions;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel32;
    private javax.swing.JLabel jLabel33;
    private javax.swing.JLabel jLabel34;
    private javax.swing.JLabel jLabel35;
    private javax.swing.JLabel jLabel36;
    private javax.swing.JLabel jLabel37;
    private javax.swing.JLabel jLabel38;
    private javax.swing.JLabel jLabel39;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel40;
    private javax.swing.JLabel jLabel41;
    private javax.swing.JLabel jLabel42;
    private javax.swing.JLabel jLabel43;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane10;
    private javax.swing.JScrollPane jScrollPane11;
    private javax.swing.JScrollPane jScrollPane12;
    private javax.swing.JScrollPane jScrollPane13;
    private javax.swing.JScrollPane jScrollPane14;
    private javax.swing.JScrollPane jScrollPane15;
    private javax.swing.JScrollPane jScrollPane16;
    private javax.swing.JScrollPane jScrollPane17;
    private javax.swing.JScrollPane jScrollPane18;
    private javax.swing.JScrollPane jScrollPane19;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane20;
    private javax.swing.JScrollPane jScrollPane21;
    private javax.swing.JScrollPane jScrollPane22;
    private javax.swing.JScrollPane jScrollPane23;
    private javax.swing.JScrollPane jScrollPane24;
    private javax.swing.JScrollPane jScrollPane25;
    private javax.swing.JScrollPane jScrollPane26;
    private javax.swing.JScrollPane jScrollPane27;
    private javax.swing.JScrollPane jScrollPane28;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JScrollPane jScrollPane7;
    private javax.swing.JScrollPane jScrollPane8;
    private javax.swing.JScrollPane jScrollPane9;
    private javax.swing.JButton layoutAdd;
    private javax.swing.JButton layoutEdit;
    private javax.swing.JList layoutList;
    private javax.swing.JSpinner layoutPriority;
    private javax.swing.JButton layoutRemove;
    private javax.swing.JComboBox layoutStatus;
    private javax.swing.JMenuItem load;
    private javax.swing.JMenuBar menu;
    private javax.swing.JTextField metric;
    private javax.swing.JTextArea originContent;
    private javax.swing.JSpinner originPriority;
    private javax.swing.JComboBox originStatus;
    private javax.swing.JSpinner permissionsPriority;
    private javax.swing.JComboBox permissionsStatus;
    private specifications.Picklists picklists;
    private javax.swing.JList preparation;
    private javax.swing.JButton preparationAdd;
    private javax.swing.JButton preparationEdit;
    private javax.swing.JButton preparationRemove;
    private javax.swing.JPanel productionPane;
    private javax.swing.JScrollPane productionTab;
    private javax.swing.JButton proofAdd;
    private javax.swing.JButton proofEdit;
    private javax.swing.JButton proofRemove;
    private javax.swing.JList proofreading;
    private javax.swing.JTextArea purposeContent;
    private javax.swing.JSpinner purposePriority;
    private javax.swing.JComboBox purposeStatus;
    private javax.swing.JButton qualAdd;
    private javax.swing.JButton qualEdit;
    private javax.swing.JButton qualRemove;
    private javax.swing.JList qualifications;
    private javax.swing.JTextArea recognition;
    private javax.swing.JSpinner refPriority;
    private javax.swing.JComboBox refStatus;
    private javax.swing.JTextArea referenceMaterials;
    private javax.swing.JList register;
    private javax.swing.JButton registerAdd;
    private javax.swing.JButton registerEdit;
    private javax.swing.JSpinner registerPriority;
    private javax.swing.JButton registerRemove;
    private javax.swing.JComboBox registerStatus;
    private javax.swing.JPanel relationshipsPane;
    private javax.swing.JScrollPane relationshipsTab;
    private javax.swing.JList restrictions;
    private javax.swing.JButton restrictionsAdd;
    private javax.swing.JButton restrictionsEdit;
    private javax.swing.JButton restrictionsRemove;
    private javax.swing.JList review;
    private javax.swing.JButton reviewAdd;
    private javax.swing.JButton reviewEdit;
    private javax.swing.JButton reviewRemove;
    private javax.swing.JList revision;
    private javax.swing.JButton revisionAdd;
    private javax.swing.JButton revisionEdit;
    private javax.swing.JButton revisionRemove;
    private javax.swing.JMenuItem rubricHelp;
    private javax.swing.JMenuItem save;
    private javax.swing.JMenuItem saveAs;
    private javax.swing.JButton scAdd;
    private javax.swing.JButton scEdit;
    private javax.swing.JButton scRemove;
    private javax.swing.JList selfChecking;
    private javax.swing.JTextField sourceAudienceField;
    private javax.swing.JLabel sourceAudienceLabel;
    private javax.swing.JLabel sourceAudienceLabel1;
    private javax.swing.JLabel sourceAudienceLabel2;
    private javax.swing.JLabel sourceLanguageLabel;
    private javax.swing.JLabel sourceLanguageLabel1;
    private javax.swing.JComboBox sourceLanguageList;
    private javax.swing.JPanel sourcePane;
    private javax.swing.JTextField sourcePurposeField;
    private javax.swing.JLabel sourcePurposeLabel;
    private javax.swing.JLabel sourcePurposeLabel1;
    private javax.swing.JLabel sourceRegionLable;
    private javax.swing.JLabel sourceRegionLable1;
    private javax.swing.JComboBox sourceRegionList;
    private javax.swing.JScrollPane sourceTab;
    private javax.swing.JTextField sourceTerminologyField;
    private javax.swing.JSpinner specializedLanguagePriority;
    private javax.swing.JLabel specializedLanguagePriorityLabel;
    private javax.swing.JLabel specializedLanguageStatusLabel;
    private javax.swing.JComboBox specializedLanguageStatusList;
    private javax.swing.JMenuItem specsHelp;
    private javax.swing.JTextField styleGuide;
    private javax.swing.JSpinner stylePriority;
    private javax.swing.JButton styleRelAdd;
    private javax.swing.JButton styleRelEdit;
    private javax.swing.JList styleRelList;
    private javax.swing.JButton styleRelRemove;
    private javax.swing.JComboBox styleStatus;
    private javax.swing.JTextField subjectFieldField;
    private javax.swing.JSpinner submissionsPriority;
    private javax.swing.JComboBox submissionsStatus;
    private javax.swing.JTabbedPane tabs;
    private javax.swing.JComboBox targetLanguageList;
    private javax.swing.JSpinner targetLanguagePriority;
    private javax.swing.JComboBox targetLanguageStatus;
    private javax.swing.JPanel targetPane;
    private javax.swing.JComboBox targetRegionList;
    private javax.swing.JScrollPane targetTab;
    private javax.swing.JButton targetTerminologyAdd;
    private javax.swing.JButton targetTerminologyEdit;
    private javax.swing.JList targetTerminologyList;
    private javax.swing.JButton targetTerminologyRemove;
    private javax.swing.JList technology;
    private javax.swing.JButton technologyAdd;
    private javax.swing.JButton technologyEdit;
    private javax.swing.JSpinner technologyPriority;
    private javax.swing.JButton technologyRemove;
    private javax.swing.JComboBox technologyStatus;
    private javax.swing.JTextField textTypeField;
    private javax.swing.JLabel textTypeLabel;
    private javax.swing.JLabel textTypeLabel1;
    private javax.swing.JLabel textTypeLabel2;
    private javax.swing.JLabel textTypeLabel3;
    private javax.swing.JLabel textualCharacteristicsLabel;
    private javax.swing.JLabel textualCharacteristicsLabel1;
    private javax.swing.JLabel textualCharacteristicsLabel10;
    private javax.swing.JLabel textualCharacteristicsLabel11;
    private javax.swing.JLabel textualCharacteristicsLabel12;
    private javax.swing.JLabel textualCharacteristicsLabel13;
    private javax.swing.JLabel textualCharacteristicsLabel14;
    private javax.swing.JLabel textualCharacteristicsLabel15;
    private javax.swing.JLabel textualCharacteristicsLabel16;
    private javax.swing.JLabel textualCharacteristicsLabel17;
    private javax.swing.JLabel textualCharacteristicsLabel18;
    private javax.swing.JLabel textualCharacteristicsLabel19;
    private javax.swing.JLabel textualCharacteristicsLabel2;
    private javax.swing.JLabel textualCharacteristicsLabel20;
    private javax.swing.JLabel textualCharacteristicsLabel3;
    private javax.swing.JLabel textualCharacteristicsLabel4;
    private javax.swing.JLabel textualCharacteristicsLabel5;
    private javax.swing.JLabel textualCharacteristicsLabel6;
    private javax.swing.JLabel textualCharacteristicsLabel7;
    private javax.swing.JLabel textualCharacteristicsLabel8;
    private javax.swing.JLabel textualCharacteristicsLabel9;
    private javax.swing.JSpinner textualCharacteristicsPriority;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel1;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel10;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel11;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel12;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel13;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel14;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel15;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel16;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel17;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel18;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel2;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel3;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel4;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel5;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel6;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel7;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel8;
    private javax.swing.JLabel textualCharacteristicsPriorityLabel9;
    private javax.swing.JComboBox textualCharacteristicsStatusList;
    private javax.swing.JSpinner typicalPriority;
    private javax.swing.JComboBox typicalStatus;
    private javax.swing.JTextField unit;
    private javax.swing.JSpinner volumePriority;
    private javax.swing.JComboBox volumeStatus;
    private javax.swing.JButton workAdd;
    private javax.swing.JButton workEdit;
    private javax.swing.JSpinner workPriority;
    private javax.swing.JButton workRemove;
    private javax.swing.JComboBox workStatus;
    private javax.swing.JList workplace;
    private org.jdesktop.beansbinding.BindingGroup bindingGroup;
    // End of variables declaration//GEN-END:variables
}
